我有一个包含一些动物目击数据的表,其中每个目击条目都有一个区域字段。每个区域每天可以有 0 到多个条目。
我需要创建一个查询,其中每个区域每天有一行(即使没有目击事件,也全天)。所以我想用generate_series命令加入表,如下所示:
WITH dates AS (
SELECT
MAX(DATE(sighting_time)) AS max_date,
MIN(DATE(sighting_time)) AS min_date
FROM sightings
)
SELECT
generate_series(dates.min_date::date, dates.max_date::date, '1 day') as gen_date
FROM dates
并与原始表进行左连接。这确实填补了两个区域都没有条目的空白,但我需要它来填充当天没有条目的每个区域的日期,基本上该区域的空行甚至可能包含区域名称还在那儿。
我还可以创建单独的查询,显式过滤每个区域,然后合并它们,但我不想对区域进行硬编码,即使我们添加更多区域,这也应该有效。
任何帮助表示赞赏,谢谢!