PostgreSQL - Сколько клиентов активно в любой месяц в году? - PullRequest
0 голосов
/ 27 ноября 2018

Вопрос: Сколько клиентов активно в любой данный месяц в году (например, ..., июнь 2005 г., июль 2005 г., ...., июнь 2006 г. и т. Д.)?Мы определяем active как выполнение хотя бы одной аренды в течение этого месяца.

Я сделал запрос, но мне нужно немного его изменить, вот мой запрос:

SELECT rental_date, to_char(rental_date, 'Mon YYYY')
FROM rental
ORDER BY rental_date desc

Я пытаюсь использовать «WITH», которое возвращает количество арендных ставок, группирование по customer_id, to_char (rental_date, 'Mon YYYY')

Вот диаграмма ER

Спасибо!

Ответы [ 2 ]

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

Вам нужно GROUP BY to_char(rental_date, 'YYYY-MM') и order by desc одинаково:

SELECT 
    to_char(rental_date, 'YYYY-MM') AS monthofyear, 
    COUNT(DISTINCT customer_id) AS activecounter 
FROM rentals
GROUP BY (to_char(rental_date, 'YYYY-MM'))
ORDER BY (to_char(rental_date, 'YYYY-MM')) DESC

Этот формат YYYY-MM можно правильно отсортировать.

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

Количество различных customer_ids, имеющих записи в месяце:

SELECT to_char(rental_date, 'Mon YYYY'), COUNT(DISTINCT customer_id)
FROM rental
GROUP BY to_char(rental_date, 'Mon YYYY')

Вам нужно DISTINCT, потому что, если один клиент выполнил 3 проката, количество (*) будет равно 3, но вы спросите "как"многие клиенты активны "(ответ: 1), а не" сколько выполнено аренды "

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