我有以下数据格式:
id eventtime use
A 2015-01-01 00:00:00-01 5.2
.
. 2015-06-06 23:59:50-01 5.7
B
.
.
我正在尝试获取表单的输出:
id eventtime use
A 2015-01-01 1200
. 2015-06-06 1400
.
B 2015-01-01 1500
基本上是我数据库中每一天每个用户的项目使用总和。
我试过
select id, eventtime, sum(use) from table group by id,eventtime
在这种情况下,我得到了一个我无法理解的聚合,即它不会增加它应该的任何东西。任何帮助将不胜感激,提前谢谢!
答案 0 :(得分:0)
您想要GROUP BY extract('day' FROM eventtime)
或GROUP BY CAST(eventtime AS date)
。
请注意,这会阻止在eventtime
上使用任何索引。如果需要,可以创建与group by
子句中使用的表达式索引相匹配的表达式索引。
答案 1 :(得分:0)
您需要通过删除时间组件将eventtime
转换为日期。我认为最简单的方法是使用date_trunc()
:
select id, date_trunc('day', eventtime) as eventday, sum(use)
from table
group by id, eventday
order by id, eventday;
我不确定为什么您的示例查询在id
中有select
,在user
中有group by
。