0
我是使用Cassandra的新手,我无法使用Group By,有没有一种方法可以像使用SQL一样在Cassandra中使用GROUP BY?我想按日期和用户名称对数据进行分组,并且我想在特定日期中总结所有金额。我还没有这个代码,因为我不知道如何开始,我也知道这个群组不支持cassandraGroup通过在Cassandra中使用日期,名称和数量
我是使用Cassandra的新手,我无法使用Group By,有没有一种方法可以像使用SQL一样在Cassandra中使用GROUP BY?我想按日期和用户名称对数据进行分组,并且我想在特定日期中总结所有金额。我还没有这个代码,因为我不知道如何开始,我也知道这个群组不支持cassandraGroup通过在Cassandra中使用日期,名称和数量
你不能使用没有物化视图的群组
但是如果你想找到一个特定日期和名称的金额总和,你可以轻松获得。
使用Apache Cassandra的3.x的
1.创建一个表
CREATE TABLE data (
date bigint,
name text,
amount double,
PRIMARY KEY (date, name, amount)
);
2.插入虚设一些数据
INSERT INTO data (date , name , amount) VALUES (1, 'a1', 10);
INSERT INTO data (date , name , amount) VALUES (1, 'a1', 20);
INSERT INTO data (date , name , amount) VALUES (1, 'a1', 30);
INSERT INTO data (date , name , amount) VALUES (1, 'a1', 40);
INSERT INTO data (date , name , amount) VALUES (1, 'a2', 50);
INSERT INTO data (date , name , amount) VALUES (1, 'a2', 60);
3.Now你可以找到的总和金额在特定的日期和名称
SELECT sum(amount) FROM data WHERE date = 1 AND name = 'a1' ;
不错的解决方案,这是一个非常有用的例子! – Aaron
您使用哪种卡桑德拉版本? –
我正在使用Cassandra 3.0.9我正在过滤Cassandra中的时间戳难度很大 – Snorlax
您需要什么?如果你想计算一天的总金额。您应该只将日,月,年插入日期字段。防爆。对于2016-11-18,您可以插入20161118作为日期 –