【发布时间】:2020-09-30 23:49:17
【问题描述】:
【问题讨论】:
标签: sql datetime window-functions gaps-and-islands
【问题讨论】:
标签: sql datetime window-functions gaps-and-islands
这是一个间隙和孤岛问题,您可以在其中构建具有相同价格的“相邻”行组。
我认为这里最简单的方法是使用行号之间的差异来构建组:
select itemno, state, price, min(rcv_date) frst_date, max(rcv_date) last_date
from (
select t.*,
row_number() over(partition by item_no, state order by rcv_date) rn1,
row_number() over(partition by item_no, state, price order by rcv_date) rn2
from mytable t
) t
group by item_no, state, price, rn1 - rn2
【讨论】: