Cassandra查询特定列的特定ID的最大值

时间:2018-09-24 19:00:45

标签: cassandra cql

我正在尝试编写Cassandra查询,我的用例如下 假设桌子是

ID  |  Version

1   |    1

1   |    2

2   |    1

2   |    2

2   |    3

现在我要获取所有ID的最新版本。

因此查询应该给我2行。第一个ID为:1版本2,第二个ID为:2版本:3

我尝试了类似Select * from table where ID=1 and Version= MAX(Version)的查询,但这不是有效的语法。

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:2)

如果您的聚类键是降序排列的版本,则

SELECT * FROM table WHERE ID = 1 LIMIT 1将为您提供最高版本。

CREATE TABLE table (
  id int,
  version int,
  PRIMARY KEY (id, version)
) WITH CLUSTERING ORDER BY (version DESC);