PostgreSQL中基于时间戳的整数列总和
问题描述:
我使用的是PostgreSQL版本8.1。我有一个表,如下所示:PostgreSQL中基于时间戳的整数列总和
datetime | usage
-----------------------+----------
2015-12-16 02:01:45+00 | 71.615
2015-12-16 03:14:42+00 | 43.000
2015-12-16 01:51:43+00 | 25.111
2015-12-17 02:05:26+00 | 94.087
我想在基于datetime
列日的usage
列中添加整数值。
简单地说,我想输出如下看:
datetime | usage
-----------------------+----------
2015-12-16 | 139.726
2015-12-17 | 94.087
我试图SELECT dateTime::DATE, usage, SUM(usage) FROM tableName GROUP BY dateTime::DATE, lngusage;
预期不执行。任何援助将不胜感激。提前致谢。
答
下面的查询应该给你想要的结果:
select to_char(timestamp, 'YYYY-MM-DD') as time, sum(usage)
from table
group by time
+0
这个答案对我很好,谢谢! –
答
这一个是对于PostgreSQL,我看你加入MySQL也。
SELECT
dt
SUM(usage),
FROM (
SELECT
DATE_TRUNC('day', datetime) dt,
usage
FROM
tableName
) t
GROUP BY
dt
答
SELECT to_char(datetime, 'format'), sum(usage)
FROM table
group by to_char(datetime, 'format')
答
另外你可以一个窗口函数。
SELECT DATETIME
,SUM(USAGE) OVER(PARTITION BY CAST(datetime AS DATE) ORDER BY datetime) AS Usage
FROM TableName
'DATE_TRUNC( '日',日期时间)'[根据文档(http://www.postgresql.org/docs/8.4/static/functions-datetime.html#FUNCTIONS-DATETIME-TRUNC ) –