Агрегирование строк postgresql по дате - PullRequest
0 голосов
/ 07 апреля 2011

У меня есть записи со значениями, такими как: дата, час, значение. Агрегировать весь день легко, я просто группирую по дате. Моя проблема заключается в том, что мне нужно агрегировать записи за целые дни с определенным временем начала / окончания. Например, когда время начала 9 утра, у меня есть записи: - с понедельника 9 утра до вторника 8 утра (сгруппированы в одну запись) - со вторника 9 утра до среды 8 утра (сгруппированы в одну запись) и так далее. Спасибо за любые идеи.

Ответы [ 2 ]

2 голосов
/ 07 апреля 2011

Я собираюсь предположить, что ваше часовое поле является INT, но независимо от того, что вы должны быть в состоянии адаптировать это ...

GROUP BY
  CASE WHEN hour >= 9 THEN date ELSE date - 1 END

По сути, это относится к любому часу до 9 утра как к части предыдущегодень.

0 голосов
/ 07 апреля 2011

GROUP BY date_trunc('day',date+(hour-9)*interval '1h') или что-то подобное?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...