2016-03-04 6 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 

Я хотел бы добавить целые значения в столбце usage на основе даты в datetime колонки.

Просто, я хотел бы выход выглядеть, как показано ниже:

  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