2017-05-09 73 views
1

我想选择两列包含相等值的所有内容。这是我的CQL查询:如何选择CQL中两列包含相同值的所有内容?

select count(someColumn) from somekeySpace.sometable where columnX = columnY 

这是行不通的。我怎样才能做到这一点?

+1

的计数。卡桑德拉不支持它。 –

+0

所以这是我需要做的事情。这是否意味着我需要从这些列中选择所有内容,然后在我的应用程序中在CQL之外执行...就像在我的java代码中一样? – J4ce

回答

1

您不能查询那样,卡桑德拉不支持它

可以通过不同的方式做到这一点。
首先你必须创建一个单独的柜台表。

CREATE TABLE match_counter(
    partition int PRIMARY KEY, 
    count counter 
); 

在插入时到主表,如果columnX = columnY那么这里增加值。虽然你只有一个数,你可以使用分区

UPDATE match_counter SET count = count + 1 WHERE partition = 1; 

的静态值,现在你可以得到你不能做到这一点的匹配列

SELECT * FROM match_counter WHERE partition = 1; 
相关问题