我有一个包含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}
答案 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 = ?;