首页 > 解决方案 > Cassandra 查询特定 ID 的特定列的最大值

问题描述

我正在尝试编写一个 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)但它不是有效的语法。

有人可以帮忙吗?

标签: cassandracql

解决方案


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);

推荐阅读