【问题标题】:PostgreSQL count occurrences of dates in a column that holds an Array of dates within a specified date rangePostgreSQL 计算列中日期的出现次数,该列包含指定日期范围内的日期数组
【发布时间】:2021-04-11 00:58:06
【问题描述】:

给定一个包含日期数组的列(例如“日期”)的 SQL 表,什么查询将返回数组中每个不同的日期以及它出现的次数?可以在查询中添加什么子句来指定最小和最大日期范围?

【问题讨论】:

    标签: arrays postgresql date count unnest


    【解决方案1】:

    假设 'myTable' 有一列包含日期数组:

    SELECT count(id), UNNEST(dates) as date
    FROM myTable
    GROUP BY date;
    

    指定最小日期和最大日期,例如在 2021-01-01 或之后和 2021-02-01 之前,并按日期排序:

    SELECT count(id), UNNEST(dates) as date
    FROM myTable
    WHERE EXISTS (SELECT * FROM UNNEST(dates) AS x WHERE x>='2021-01-01' AND x<'2021-02-01')
    GROUP BY date
    ORDER BY date ASC;
    

    【讨论】:

      猜你喜欢
      • 2010-11-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-14
      • 1970-01-01
      • 1970-01-01
      • 2013-01-07
      • 2016-05-18
      相关资源
      最近更新 更多