表:
id data
1 1000
2 2000
3 1500
4 800
5 3000
6 4000
希望得到的结果集:
id data p_data n_data
1 1000 1000 800
2 2000 2000 800
3 1500 2000 800
4 800 2000 800
5 3000 3000 3000
6 4000 4000 4000
结果集中新增字段p_data其值为当前记录前(包括当前记录)所有data中的最大值;n_data为当前记录后(包括当前记录)所有data的最小值。求教oracle写法!
------解决思路----------------------
WITH T1 as (
select id,data,max(data)over(order by id) p_data
from T
),T2 as (
select id,min(data)over(order by id desc) n_data
from T
)
select T1.ID,T1.DATA,T1.P_DATA,T2.N_DATA
from T1,T2
WHERE T1.ID=T2.ID
------解决思路----------------------
SELECT ID,DATA,LAG(P_DATA)OVER(ORDER BY ID) p_data
FROM (
select id,data,max(data)over(order by id) p_data
from T
)