下面是我的表的一个子集(对于第一个id)
| 日期|标识符|价值|
| - -|- -|- -|
| 2022年1月1日|一个|五个|
| 2022年8月1日|一个|2个|
对于每个ID,日期不是连续的(例如,对于ID 1,最小日期是01/01/2022,最大日期是08/01/2022)--两个日期之间有7天。我希望插入行以使每个ID的日期连续--值字段/列的值将填充0,以便更新后的表如下所示:
| 日期|标识符|价值|
| - -|- -|- -|
| 2022年1月1日|一个|五个|
| 2022年2月1日|一个|第0页|
| 2022年3月1日|一个|第0页|
| 2022年4月1日|一个|第0页|
| 2022年5月1日|一个|第0页|
| 2022年6月1日|一个|第0页|
| 2022年7月1日|一个|第0页|
| 2022年8月1日|一个|2个|
任何关于如何实现这一点的SQL代码都将受到高度赞赏。我有一个日历表,但不确定如何将它与上面的表连接起来,以便我用0动态地为每个ID填充缺失的日期。
我的行事历表格如下所示:
| 日期|
| - -|
| 2022年1月1日|
| 2022年2月1日|
| 2022年3月1日|
| 2022年4月1日|
3条答案
按热度按时间pkmbmrz71#
考虑到你说你有一个日历表,看起来你需要做什么
JOIN
到它与MIN
和MAX
的日期从你的其他表,和LEFT JOIN
回到你的表:o7jaxewo2#
wwwo4jvm3#
尝试generate_series创建一个日期表,然后将其与之右连接,并为非空值合并