use*_*190 7 sql oracle group-by lead
我需要查询一个包含步骤id +值的表.结果将列出间隔及其相关值.这里的间隔被定义为"连续的步骤ID,共享相同的数据值".
我很难用文字描述它,所以请看这个:
从这张桌子
Step ! Data
------------
1 ! A
2 ! A
3 ! A
5 ! A
6 ! B
10 ! A
Run Code Online (Sandbox Code Playgroud)
我需要以下报告
From ! To ! Data
-------------------
1 ! 3 ! A
5 ! 5 ! A
6 ! null ! B
10 ! null ! A
Run Code Online (Sandbox Code Playgroud)
我认为lead()会帮助我,但没有成功.
select min (step) as "from"
,nullif (max (step),max(min(step)) over (partition by data)) as "to"
,data
from (select step,data
,row_number () over (partition by data order by step) as n
from t
)
group by data
,step - n
order by "from"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
46 次 |
| 最近记录: |