Cassandra querybuilder选择具有聚合函数的多列

时间:2017-04-10 09:43:29

标签: java cassandra query-builder

enter image description here 我有一张桌子:

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;  

1 个答案:

答案 0 :(得分:1)

cassandra中有几个问题与此声明有关。这种在cassandra中没有意义,因为对于每次出价,您实际上只会返回一个(如果您决定插入更多出价,则会覆盖群集列和群集列)。此外,您不能将count与其他列结合使用。

您可以使用用户定义的函数执行此操作:

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

但是再次使用这个模型,A行中只有一个B列的具体实例。

编辑: 这可能无法按预期工作,您将获得分区中的第一个出价和出价总数: enter image description here

如果这对你有用,那就再好一点。我尝试将选择列与查询构建器中的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));

我建议接着准备好的陈述。