выберите месяц за днем - PullRequest
2 голосов
/ 03 июля 2011

Мне нужно написать запрос, который выводит ежедневную статистику звонков.моя таблица вызовов выглядит следующим образом:

user    date
1       3/6/2011
1       15/7/2011

мои результаты должны быть такими:

date               count

1/6/2011            0
2/6/2011            0
3/6/2011            1
...
30/6/2011           0

как я могу это сделать ??

Ответы [ 3 ]

1 голос
/ 03 июля 2011

Попробуйте с помощью:

SELECT month.date, count(userid)
FROM generate_series(DATE '2011-06-01', DATE '2011-06-30', '1 day') month
LEFT JOIN calls ON (month.date = calls.date)
GROUP BY month.date
ORDER BY month.date ASC;

Более общее решение (чтобы вы могли указать месяц и год в качестве параметра):

SELECT month.date, count(userid)
FROM generate_series(DATE '2011-06-01', DATE '2011-06-01' + INTERVAL '1 month' - INTERVAL '1 day', '1 day') month
LEFT JOIN calls c ON (month.date = c.date)
GROUP BY month.date
ORDER BY month.date ASC;
1 голос
/ 03 июля 2011

Используйте generate_series (начало, остановка, шаг шага) , чтобы создать список для присоединения.

0 голосов
/ 03 июля 2011

Это просто группа, которую вы ищете?

select date, count(*) from tablename
group by date 
order by date desc
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...