Как я могу получить записи по месяцам между двумя датами в postgresql (группировка дат по месяцам)? - PullRequest
0 голосов
/ 02 ноября 2018

Я использую приведенный ниже запрос для извлечения рекордного месяца, но это дает неверные данные

SELECT 
     (count( server_time::timestamp::date)) , 
     min(server_time::timestamp::date) as "Month Date"
FROM 
     complaint_details_v2 
WHERE 
     server_time between '2018/08/01' and '2018/10/30' 
GROUP BY 
     floor((server_time::timestamp::date  - '2018/08/01'::date)/30)
ORDER BY 
     2 ASC

Результат

Count Month Date
2774  2018-08-01
5893  2018-08-31
1193  2018-09-30

Но результат будет

Count Month Date
2774  2018-08-01
5893  2018-09-01
1193  2018-10-01

1 Ответ

0 голосов
/ 02 ноября 2018

Использование date_trunc

демо: дб <> скрипка

SELECT
    count(*), 
    date_trunc('month', servertime)::date as month_date
FROM log
GROUP BY date_trunc('month', servertime)
ORDER BY 2 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...