用于填充缺失周数据的SQL
我想构建一个sql来填充丢失的数周数据。你能帮忙吗 例如:用于填充缺失周数据的SQL,sql,database,Sql,Database,我想构建一个sql来填充丢失的数周数据。你能帮忙吗 例如: Year - Week order 2018 W45 250 2018 W51 300 我希望显示如下: Year - Week order 2018 W45 250 2018 W46 250 2018 W47 250 2018 W48 250 2018 W49 250 2018 W50 250 2018 W51
Year - Week order
2018 W45 250
2018 W51 300
我希望显示如下:
Year - Week order
2018 W45 250
2018 W46 250
2018 W47 250
2018 W48 250
2018 W49 250
2018 W50 250
2018 W51 300
...
2019 W52 300
假设截止日期为2019年12月
在PostgreSQL上,您可以尝试以下内容
SELECT sq."year-week"
, sq.orders
FROM
(
SELECT LEFT(a.rstrt, 6) || W "year-week"
, a.orders
, ROW_NUMBER() OVER(PARTITION BY LEFT(a.rstrt, 6) || W ORDER BY a.rend DESC) RN
FROM(SELECT "year-week" rstrt
, COALESCE(LEAD ("year-week", 1) OVER(), 2018 || ' W' || 52) rend
, orders
FROM orders
UNION
SELECT '2019 W01', '2019 W52', 300) a
LEFT JOIN (SELECT generate_series(1, 52, 1) w) b ON b.w BETWEEN RIGHT(a.rstrt, 2)::INT AND RIGHT(a.rend, 2)::INT
ORDER BY LEFT(a.rstrt, 4)::INT, w
) sq
WHERE RN = 1;
用你正在使用的数据库标记你的问题。你到底想做什么?。。。。你能说得更具体一点吗?为了节省数据库中的空间,我们只在更改的几周内存储数据。我想知道是否可以使用sql在两周之间复制数据,以便按周显示数据。您使用的是哪种数据库服务器?哪个版本?