我的表中除了日期字段外还有字段A,这个字段存储了商品编号,现在要依据商品编号,补全每个商品编号的日期
时间: 2023-08-21 20:08:06 浏览: 98
填充数据表
如果你想根据商品编号补全每个商品编号的日期,你可以使用以下的SQL查询:
```sql
WITH all_dates AS (
SELECT MIN(date_column) AS min_date, MAX(date_column) AS max_date
FROM your_table
),
all_dates_range AS (
SELECT generate_series(min_date, max_date, '1 day'::interval) AS date_range
FROM all_dates
),
all_products AS (
SELECT DISTINCT product_number
FROM your_table
),
missing_dates AS (
SELECT product_number, date_range
FROM all_products, all_dates_range
LEFT JOIN your_table ON all_products.product_number = your_table.product_number AND all_dates_range.date_range = your_table.date_column
WHERE your_table.product_number IS NULL
)
SELECT missing_dates.product_number, missing_dates.date_range
FROM missing_dates;
```
在上述查询中,我添加了一个名为 `all_products` 的CTE,用于获取所有不重复的商品编号。然后,我通过左连接(LEFT JOIN)将所有商品编号与日期范围表进行关联,并排除已经存在的日期。最后,我选择了缺失日期的商品编号和日期范围。
请将上述代码中的 `your_table` 替换为你的实际表名,`date_column` 替换为包含日期的列名,`product_number` 替换为商品编号的列名。
这样就可以找到每个商品编号缺失的日期。
阅读全文