Cassandra,表中的总平均值

时间:2017-01-08 07:18:45

标签: cassandra aggregate nosql

我有一个包含id,name和一个由timestamp和float作为值对的映射的表。汇总的语法是什么,并从我的地图中的所有浮点值中获取平均浮点值?

表格看起来像这样:

ID | name | temp map<timestamp, float>

1  |   N  | {'2016-10-27 13:00:00':6.7,'2016-10-27 13:00:00':6.6}

1 个答案:

答案 0 :(得分:2)

您无法在地图上使用聚合函数。但是,由于内部地图转换为多行,因此您可以更改数据模型,以便在分区级别执行aggretate函数。这样的事情就足够了:

CREATE TABLE mytable (
    id int,
    name text,
    ts timestamp,
    value float,
    PRIMARY KEY ((id, name), ts);
);

SELECT avg(value) FROM mytable WHERE id = ? AND name = ?;