我有一张包含不同日期时间的item_wise数量的桌子。尝试添加每小时的数据(一天中有24个肠类),并提供前一个小时的可用数量。例如,对于小时(2-10),它将是5。
如何添加以前可用的条目。需要建议
item_id| date | hour| quantity
101 | 2022-04-25 | 2 | 5
101 | 2022-04-25 | 10 | 13
101 | 2022-04-25 | 18 | 67
101 | 2022-04-25 | 23 | 27发布于 2022-04-25 08:46:02
您可以尝试使用generate_series生成小时数,让它成为OUTER JOIN基表,
然后使用关联子查询获取expect quantity列。
SELECT t1.*,
(SELECT quantity
FROM T tt
WHERE t1.item_id = tt.item_id
AND t1.date = tt.date
AND t1.hour >= tt.hour
ORDER BY tt.hour desc
LIMIT 1) quantity
FROM (
SELECT DISTINCT item_id,date,v.hour
FROM generate_series(1,24) v(hour)
CROSS JOIN T
) t1
ORDER BY t1.hour发布于 2022-04-25 08:51:19
提供了int 1的表格。24是all24(hour)你可以使用lead和join
select t.item_id, t.date, all24.hour, t.quantity
from all24
join (
select *,
lead(hour, 1, 25) over(partition by item_id, date order by hour) - 1 nxt_h
from tbl
) t on all24.hour between t.hour and t.nxt_hhttps://stackoverflow.com/questions/71996406
复制相似问题