我有一个可以使用的日期列表:
SELECT date from
generate_series(
'2016-05-09'::date,
CURRENT_DATE,
'1 day'::interval
) date
我想使用上面列表中的每个值在表上执行另一个查询:我想为其中一个日期值实现的示例:
SELECT COUNT(*) FROM table,
WHERE table.datecolumn > date
如何对第一个查询中的所有值执行第二个查询,以某种形式获得最终输出:
datecol count
2016-07-09 100
2016-07-10 200
2016-07-11 100
我会使用LATERAL
加入。见7.2.1.5。Postgres文档中的LATERAL子查询。
SELECT
dates.dt, Counts.c
FROM
generate_series(
'2016-05-09'::date,
CURRENT_DATE,
'1 day'::interval
) AS dates(dt)
INNER JOIN LATERAL
(
SELECT COUNT(*) AS c
FROM table
WHERE table.datecolumn > dates.dt
) AS Counts ON true
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句