Postgresql Среднее и Группировка по - PullRequest
0 голосов
/ 12 июня 2018

Итак, у меня есть таблица с идентификатором столбца (INTEGER), температурой (REAL) и один раз (TIMESTAMP), и я хочу сделать среднюю температуру по часам, но не могу ее обойти.

Для образца с

 temperature |        time      
-------------+---------------------
       21.88 | 2018-06-01 07:30:00
       23.21 | 2018-06-01 07:45:00
       23.57 | 2018-06-01 08:15:00
       24.91 | 2018-06-01 08:30:00
        25.5 | 2018-06-01 08:45:00
       25.98 | 2018-06-01 09:00:00
             | 2018-06-01 09:30:00
       24.45 | 2018-06-01 09:45:00
             | 2018-06-01 10:00:00

И запрос:

SELECT DISTINCT ON(DATE_PART('hour',time)) time, avg(temperature) 
FROM Measure GROUP BY time , DATE_PART('hour',time);

Я получаю:

        time         |       avg        
---------------------+------------------
 2018-06-01 07:30:00 | 21.8799991607666
 2018-06-01 08:15:00 | 23.5699996948242
 2018-06-01 09:00:00 | 25.9799995422363

Что-то здесь происходит, но это не в среднем...

Решено:

Благодаря комментарию я получил что-то правильное с запросом:

SELECT DISTINCT ON(DATE_TRUNC('hour',time)) DATE_TRUNC('hour',time), avg(temperature) 
FROM Measure GROUP BY DATE_TRUNC('hour',time), DATE_TRUNC('day',time);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...