PostgreSQL generate_series с предложением WHERE

У меня проблема с созданием серии дат и последующим возвратом COUNT строк, соответствующих каждой дате в серии.

SELECT generate_series(current_date - interval '30 days', current_date, '1 day':: interval) AS i, COUNT(*)
FROM download
WHERE product_uuid = 'someUUID'
AND created_at = i
GROUP BY created_at::date
ORDER BY created_at::date ASC

Я хочу, чтобы на выходе было количество строк, соответствующих текущей дате в серии.

05-05-2018, 35
05-06-2018, 23
05-07-2018, 0
05-08-2018, 10
...

Схема содержит следующие столбцы: id, product_uuid, created_at. Любая помощь будет принята с благодарностью. Если нужно, могу добавить больше деталей.

ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
Понимание Python и переход к SQL
Понимание Python и переход к SQL
Перед нами лабораторная работа по BloodOath:
1
0
925
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Поместите функцию создания таблицы в from и используйте join:

SELECT g.dte, COUNT(d.product_uuid)
FROM generate_series(current_date - interval '30 days', current_date, '1 day':: interval
                    ) gs(dte) left join
     download d
     on d.product_uuid = 'someUUID' AND
        d.created_at::date = g.dte
GROUP BY g.dte
ORDER BY g.dte;

Другие вопросы по теме