PostgreSQL生成带有WHERE子句的_系列
我在生成一系列日期时遇到了一个问题,然后返回与该系列中的每个日期匹配的行的PostgreSQL生成带有WHERE子句的_系列,sql,database,postgresql,generate-series,Sql,Database,Postgresql,Generate Series,我在生成一系列日期时遇到了一个问题,然后返回与该系列中的每个日期匹配的行的计数 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 cre
计数
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
...
我希望输出是与序列中当前日期匹配的行数
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\u uuid
,在
处创建。任何帮助都将不胜感激。如果需要,我可以添加更多详细信息。将表生成函数放入from
中,并使用连接:
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;