0
代表開始和結束的鮮明連續範圍:的Oracle SQL - 給定一個表列中的日期
Start End
01/01/2016 03/01/2016
01/01/2016 06/01/2016
我試圖建立一個能夠識別出不同的範圍集合的查詢如下:
[01/01/2016, 03/01/2016)
[03/01/2016, 06/01/2016)
這個概念叫什麼?我怎麼用SQL實現它?
代表開始和結束的鮮明連續範圍:的Oracle SQL - 給定一個表列中的日期
Start End
01/01/2016 03/01/2016
01/01/2016 06/01/2016
我試圖建立一個能夠識別出不同的範圍集合的查詢如下:
[01/01/2016, 03/01/2016)
[03/01/2016, 06/01/2016)
這個概念叫什麼?我怎麼用SQL實現它?
你可以把所有的日期在一起,並使用lead()
:
with d as (
select start as dte
from t
union -- on purpose to remove duplicates
select end as dte
from t
)
select dte as start, lead(dte) over (order by dte) as end
from d;
如果你想防止最終NULL
值。 。 。
select d.*
from (select dte as start, lead(dte) over (order by dte) as end
from d
) d
where end is not null;
select lag(end_date,1,start_date)over(order by end_date)start_date,end_date from jtest14;
那麼,如何**完全**你會定義一組範圍?如果你試圖回答這個問題,你可能會發現自己非常接近答案...... –