SQL如何在查询中使用另一个查询的值

时间:2016-07-12 07:50:48

标签: sql postgresql select

我有一个日期列表,我可以使用它生成:

null

我想使用上面列表中的每个值对表执行另一个查询: 我希望为其中一个日期值实现的示例:

SELECT date from 
    generate_series(
      '2016-05-09'::date,
      CURRENT_DATE,
      '1 day'::interval
    ) date

如何对第一个查询中的所有值执行第二个查询,以便在表单中稍微获得最终输出:

SELECT COUNT(*) FROM table,
WHERE table.datecolumn > date 

1 个答案:

答案 0 :(得分:1)

我使用LATERAL加入。请参阅Postgres文档中的7.2.1.5. LATERAL Subqueries

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