我有一个包含
Sort
和Status
字段的表。LastStatus
和 Times
.当查询结果是这样的时候:
排序 | 状态 |
---|---|
1 | 阿尔法 |
2 | 太棒了 |
3 | 查理 |
4 | 阿尔法 |
5 | 阿尔法 |
6 | 查理 |
7 | 阿尔法 |
8 | 阿尔法 |
9 | 阿尔法 |
预期结果:
最后状态 | 时代 |
---|---|
阿尔法 | 3 |
谢谢!
二读,这更像是一个空岛问题
示例或 dbFiddle
with cte as (
Select [Sort]
,[Status]
,Grp = row_number() over (order by Sort)
-row_number() over (partition by [Status] order by Sort)
From YourTable
)
Select top 1 with ties
[Status]
,Times = sum(1)
From cte
Group By Grp,[Status]
Order by max([Sort]) desc
结果
Status Times
alpha 3