首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Cassandra Order by目前只支持按列在主键中声明的顺序排序

Cassandra Order by目前只支持按列在主键中声明的顺序排序
EN

Stack Overflow用户
提问于 2017-06-05 23:43:39
回答 2查看 4.8K关注 0票数 3

这是我用来创建表的查询:

代码语言:javascript
运行
复制
CREATE TABLE test.comments (msguuid timeuuid, page text, userid text, username text, msg text, timestamp int, PRIMARY KEY (timestamp, msguuid));

然后创建一个物化视图:

代码语言:javascript
运行
复制
CREATE MATERIALIZED VIEW test.comments_by_page AS
    SELECT *
    FROM test.comments
    WHERE page IS NOT NULL AND msguuid IS NOT NULL
    PRIMARY KEY (page, timestamp, msguuid)
    WITH CLUSTERING ORDER BY (msguuid DESC);

我想让最后50行按时间戳按升序排序。

这是我正在尝试的查询:

SELECT * FROM test.comments_by_page WHERE page = 'test' AND timestamp < 1496707057 ORDER BY timestamp ASC LIMIT 50;

,然后给出这个错误:InvalidRequest: code=2200 [Invalid query] message="Order by currently only support the ordering of columns following their declared order in the PRIMARY KEY"

我怎样才能做到这一点?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-06-06 05:15:05

物化视图规则基本上与“标准”表相同。如果您想要一个特定的顺序,则必须在群集键中指定该顺序。

因此,您必须将您的timestamp放到集群部分。

票数 1
EN

Stack Overflow用户

发布于 2018-04-13 07:40:32

群集顺序语句应该修改如下://不要忘记将主键放在时间戳之前,放入()

代码语言:javascript
运行
复制
CLUSTERING ORDER BY ((msguuid DESC), timestamp ASC)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44379302

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档