我使用下表:
CREATE TABLE IF NOT EXISTS lp_registry.domain (
ownerid text,
name1st text,
name2nd text,
name3rd text,
registrar text,
registered timestamp,
expiration timestamp,
updated timestamp,
technologies list<text>,
techversions list<text>,
ssl boolean,
PRIMARY KEY (
(name1st, name2nd, name3rd),
registrar, ownerid, registered, expiration, updated
)
);
表不会更新,只会添加新行。每次爬虫检查域时,都会添加新行。
我正在执行此选择:
SELECT * FROM lp_registry.domain WHERE
registrar = 'REG-WEDOS' AND
ownerid = 'FORPSI-JAF-S497436'
ALLOW FILTERING;
但我想要的结果只是每个唯一“name3rd.name2nd.name1st”具有最新“更新”值的行。
如果我在标准 SQL 数据库中,我会使用带有 MAX 或 GROUP BY 的嵌套选择。但是,Cassandra 不支持此功能(Cassandra 中的MAX()、DISTINCT 和 group by)。但是我应该在 CQL 中做什么?