私は次のテーブルで作業します:
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で何をすべきですか?