【发布时间】:2021-04-11 00:58:06
【问题描述】:
给定一个包含日期数组的列(例如“日期”)的 SQL 表,什么查询将返回数组中每个不同的日期以及它出现的次数?可以在查询中添加什么子句来指定最小和最大日期范围?
【问题讨论】:
标签: arrays postgresql date count unnest
给定一个包含日期数组的列(例如“日期”)的 SQL 表,什么查询将返回数组中每个不同的日期以及它出现的次数?可以在查询中添加什么子句来指定最小和最大日期范围?
【问题讨论】:
标签: arrays postgresql date count unnest
假设 '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;
【讨论】: