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

Cassandra querybuilder selection of multiple column with aggregate function

我有一个 table:

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;  

cassandra 中的这个语句有几个问题。这种在 cassandra 中没有意义,因为对于每个出价,您实际上只会得到一个回报(如果您决定插入更多出价内容,则聚类列和聚类列将被覆盖)。此外,您不能将计数与其他列结合使用。

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

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

但是对于这个模型,A 行中只有一个 B 列的具体实例。

编辑: 这可能不会像您预期的那样工作,您将获得分区中的第一个出价和出价总数:

如果这对你有用,那就更好了。我尝试在查询构建器中将 select 列与计数结合起来 - 似乎不可组合。如果已经有您正在 selecting 的列列表,我基本上会在引擎盖下查看驱动程序,您将得到一个例外。

        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));

那么我建议使用准备好的语句。