2016-03-04 48 views
2

我使用的是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;预期不执行。任何援助将不胜感激。提前致谢。

+0

'DATE_TRUNC( '日',日期时间)'[根据文档(http://www.postgresql.org/docs/8.4/static/functions-datetime.html#FUNCTIONS-DATETIME-TRUNC ) –

回答

2

下面的查询应该给你想要的结果:

select to_char(timestamp, 'YYYY-MM-DD') as time, sum(usage) 
from table 
group by time 
+0

这个答案对我很好,谢谢! –

0

这一个是对于PostgreSQL,我看你加入MySQL也。

SELECT 
    dt 
    SUM(usage), 
FROM (
    SELECT 
    DATE_TRUNC('day', datetime) dt, 
    usage 
    FROM 
    tableName 
) t 
GROUP BY 
    dt 
0
SELECT to_char(datetime, 'format'), sum(usage) 
FROM table 
group by to_char(datetime, 'format') 
0

另外你可以一个窗口函数。

SELECT DATETIME 
,SUM(USAGE) OVER(PARTITION BY CAST(datetime AS DATE) ORDER BY datetime) AS Usage 
FROM TableName