2017-04-10 139 views
1

enter image description here 多列的卡桑德拉QueryBuilder的选择我有一个表:与聚合函数

CREATE TABLE AB (
    aid bigint, 
    bid bigint, 
    time bigint, 
    value int, 
    status int, 
    PRIMARY KEY (aid, bid) 
) WITH CLUSTERING ORDER BY (bid ASC); 

如何编写卡桑德拉使用的QueryBuilder此查询?

select count(*),aid from AB where aid = 2; 
+0

您已指定帮助,您为什么需要选择它? –

+0

我的查询是为了不同的目的。(异步)。好的。使用querybuilder告诉我这个查询的语法。 select count(*),bid from AB where aid = 2; – RJMIMI38

回答

1

在cassandra中有这样的问题。这种方式在cassandra中没有任何意义,因为对于每一个出价,您实际上只会得到一个返回(如果您决定插入更多出价内容,集群列和集群列就会被覆盖)。您也不能将计数与其他列结合使用。

你可能会与用户定义函数做到这一点:

https://docs.datastax.com/en/cql/3.3/cql/cql_using/useCreateUDA.html

但随后再次用这个模型只有一个在A列B内列的具体实例。

编辑: ,你期望它这可能无法正常工作,您将获得在该分区的第出价和报价的总数: enter image description here

话又说回来,如果这对你的作品,甚至更好。我尝试将查询生成器中的select列与count进行组合 - 似乎不可组合。我基本上看到了引擎盖下的驱动程序,如果已经有一列你正在选择的列,你会得到一个异常。

 if (columnNames != null) 
      throw new IllegalStateException(String.format("Some columns (%s) have already been selected.", columnNames)); 
     if (previousSelection != null) 
      throw new IllegalStateException(String.format("Some columns ([%s]) have already been selected.", previousSelection)); 

那么我会建议随时准备好声明。

+0

谢谢。我编辑了这个问题。查询已经支持我的模型。我只是在查找使用querybuilder编写查询的语法。如果你能帮助我的语法,将是有益的。 TIA。 – RJMIMI38