該方法可用於計算兩個相鄰日期間的間隔,如可用來計算使用者活躍度,看出每個使用者多次下單中的每兩次之間的時間間隔,用以劃分使用者(如很活躍,活躍等,),還可以看出使用者的大致購買時間間隔,對於超出時間間隔未再次下單的使用者(沉睡使用者),可想辦法進行喚醒等。
)as rn —先通過row_number函式建立乙個排序標識,然後再通過這個標識做join
from emp)
select a.deptno,a.hiredate,b.hiredate as last_day
from t1 a
left
join t1 b
on a.deptno = b.deptno
and a.rn = b.rn +
1order
by deptno,hiredate;
select a.deptno,a.hiredate,b.hiredate as last_day
from
(select deptno,hiredate,
row_number(
)over
(partition
by deptno order
by hiredate asc
)as rn
from emp ) a
left
join
(select deptno,hiredate,
row_number(
)over
(partition
by deptno order
by hiredate asc
)as rn
from emp ) b
on a.deptno = b.deptno and a.rn = b.rn +
1order
by deptno,hiredate;
兩者其實是乙個意思,得到的結果如下:
Oracle獲取上一條記錄或上一條記錄函式
獲取上一條記錄,若沒有記錄則值為0,其中 lag news id,1,0 news id為根據哪乙個字段進行檢查,1 為每次偏移量,0 為沒有上一條時的返回值 select n.lag news id,1,0 over order by news id asc nid from news n 執行結...
上一條記錄下一條記錄
select top 1 from 表 where id 當前id order by id desc select top 1 from 表 where id 當前id order by id desc 上一條記錄 select top 1 blogid from gcc bloginfo wher...
SQL查詢當前資料上一條和下一條的記錄
id是指當前資料news id引數 方法一 string presql select top 1 from news where news id id order by news id desc string nextsql select top 1 from news where news id ...