我可以轻松地从DevCenter执行查询:
SELECT sum(count) FROM myTable;
但我发现sum
中的cql
函数没有任何专注。它存在吗? cassandra团队发布了具有count
功能和其他功能的功能列表?
注意
This function list对count
或sum
一无所知。
答案 0 :(得分:3)
sum()和avg()函数似乎在Cassandra 2.2和SELECT语句的3.0-alpha中有效,但它们似乎还没有出现在文档中。
它们应该记录在2.2 CQL参考here中。我想在3.0正式发布时,他们将努力更新文档。
它们看起来很容易使用:
cqlsh:test> CREATE table t1 ( a int, b int, primary key (a));
cqlsh:test> INSERT INTO t1 (a, b) VALUES ( 1, 2);
cqlsh:test> INSERT INTO t1 (a, b) VALUES ( 3, 4);
cqlsh:test> SELECT sum (b) from t1;
system.sum(b)
---------------
6
(1 rows)
cqlsh:test> SELECT avg (b) from t1;
system.avg(b)
---------------
3
很高兴终于内置了基本的聚合函数。现在,如果有人只是使用类似Spark的方法实现基本连接,那么我们将使用gas来烹饪。 :)
为了回答您的问题,这些函数似乎在此文件中实现(如果您下载源代码):
src/java/org/apache/cassandra/cql3/functions/AggregateFcts.java
Cassandra 2.2中实现的功能是:sum(),avg(),max(),min()和count()。
答案 1 :(得分:1)
Cassandra不支持聚合函数作为CQL标准的一部分。但是从Cassandra 2.2开始,您将能够创建自己的函数(UDA),这将允许您实现总和计算。