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

Я использую этот запрос для извлечения данных за день

SELECT 
     (count( server_time::timestamp::date)) , 
     server_time::timestamp::date 
FROM 
     complaint_details_v2 
WHERE 
     server_time between '2018/10/03' and '2018/10/11' 
GROUP BY 
     server_time::timestamp::date 
ORDER BY 
     server_time ASC

но я хочу изменить вышеуказанный запрос неделей, а не днем ​​между двумя датами.

1 Ответ

0 голосов
/ 31 октября 2018

Вы можете сгруппировать даты в семерки, выполнив арифметику дат.

SELECT 
     (count( server_time::timestamp::date)) , 
     min(server_time::timestamp::date) as "week starting"
FROM 
     complaint_details_v2 
WHERE 
     server_time between '2018/10/03' and '2018/10/11' 
GROUP BY 
     floor((server_time::timestamp::date  - '2018/10/03'::date)/7)
ORDER BY 
     2 ASC

другой альтернативой является группировка выражений date_trunc(week,server_time), но это связывает вас с неделями ISO

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