CREATE TABLE AB (
aid bigint,
bid bigint,
time bigint,
value int,
status int,
PRIMARY KEY (aid, bid)
) WITH CLUSTERING ORDER BY (bid ASC);
如何在cassandra中使用Querybuilder编写此查询?
select count(*),aid from AB where aid = 2;
答案 0 :(得分:1)
cassandra中有几个问题与此声明有关。这种在cassandra中没有意义,因为对于每次出价,您实际上只会返回一个(如果您决定插入更多出价,则会覆盖群集列和群集列)。此外,您不能将count与其他列结合使用。
您可以使用用户定义的函数执行此操作:
https://docs.datastax.com/en/cql/3.3/cql/cql_using/useCreateUDA.html
但是再次使用这个模型,A行中只有一个B列的具体实例。
编辑: 这可能无法按预期工作,您将获得分区中的第一个出价和出价总数:
如果这对你有用,那就再好一点。我尝试将选择列与查询构建器中的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));
我建议接着准备好的陈述。