SQL如何将查询中的值用于另一个查询
我有一个日期列表,我可以使用:SQL如何将查询中的值用于另一个查询,sql,postgresql,select,Sql,Postgresql,Select,我有一个日期列表,我可以使用: SELECT date from generate_series( '2016-05-09'::date, CURRENT_DATE, '1 day'::interval ) date 我想使用上面列表中的每个值对表执行另一个查询: 我希望实现其中一个日期值的示例: SELECT COUNT(*) FROM table, WHERE table.datecolumn > date 如何对第一个查询中
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
join。参见博士后文献
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
您是否尝试过从表中选择COUNT(*)、datecolumn,其中table.datecolumn>date?