2016-11-17 27 views
0

我是使用Cassandra的新手,我无法使用Group By,有没有一种方法可以像使用SQL一样在Cassandra中使用GROUP BY?我想按日期和用户名称对数据进行分组,并且我想在特定日期中总结所有金额。我还没有这个代码,因为我不知道如何开始,我也知道这个群组不支持cassandraGroup通过在Cassandra中使用日期,名称和数量

+0

您使用哪种卡桑德拉版本? –

+0

我正在使用Cassandra 3.0.9我正在过滤Cassandra中的时间戳难度很大 – Snorlax

+0

您需要什么?如果你想计算一天的总金额。您应该只将日,月,年插入日期字段。防爆。对于2016-11-18,您可以插入20161118作为日期 –

回答

3

你不能使用没有物化视图的群组
但是如果你想找到一个特定日期和名称的金额总和,你可以轻松获得。

使用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' ; 
+0

不错的解决方案,这是一个非常有用的例子! – Aaron

相关问题