【发布时间】:2017-09-26 12:38:26
【问题描述】:
我有一张包含球员、结果和 ID 的表格:
Player | Result | ID
---------------
An | W | 1
An | W | 1
An | L | 0
An | W | 1
An | W | 1
An | W | 1
Ph | L | 0
Ph | W | 1
Ph | W | 1
Ph | L | 0
Ph | W | 1
“W”的 ID 始终为 1,
我需要创建一个查询来计算每个玩家连续“W”的最大数量:
Player | MaxWinStreak
---------------------
An | 3
Ph | 2
我尝试使用 Rows Unbounded Preceeding 但我只能让它计算 Ws 的最大总数,而不是连续计算
Select
t2.player
,max(t2.cumulative_wins) As 'Max'
From
( Select
t.Player
,Sum(ID) Over (Partition By t.Result,t.player
Order By t.GameWeek Rows Unbounded Preceding) As cumulative_wins
From
t
) t2
Group By
t2.player
我可以采取不同的方法吗?
【问题讨论】:
-
您需要一列来指定排序。
-
有没有存储输赢顺序的列?
-
@GordonLinoff 我很高兴添加任何其他列,但不知道该怎么做
标签: sql sql-server gaps-and-islands