【发布时间】:2020-02-19 22:04:14
【问题描述】:
我正在尝试对可能被不同组破坏的单独行进行分组。如果它们坏了,我希望它们分开分组。
所以我有:
Col1 | Col2
---------------------
| Y |01/JAN/2012
| Y |01/FEB/2012
| N |01/MAR/2012
| Y |01/APR/2012
| Y |01/MAY/2012
我想得到结果:
|col1|col2 |GRP
---------------------
| Y |01/JAN/2012|1
| Y |01/FEB/2012|1
| N |01/MAR/2012|2
| Y |01/APR/2012|3
| Y |01/MAY/2012|3
我怎样才能做到这一点?
我目前的尝试是这样的:
select
Col1,
Col2,
dense_rank() over (partition by Col1 order by Col2 asc) as grp
from
myTABLE
;
但这会将所有的“Y”组合在一起并给我一个这样的序号:
|col1|col2 |GRP
---------------------
| Y |01/JAN/2012|1
| Y |01/FEB/2012|2
| N |01/MAR/2012|1
| Y |01/APR/2012|3
| Y |01/MAY/2012|4
【问题讨论】:
标签: sql gaps-and-islands analytic-functions