Tsql SQL Server“分组依据”用于一个有趣的案例
我有一张这样的桌子Tsql SQL Server“分组依据”用于一个有趣的案例,tsql,sql-server-2000,group-by,sequential,Tsql,Sql Server 2000,Group By,Sequential,我有一张这样的桌子 ID ORDER TEAM TIME IL-1 1 A_Team 11 IL-1 2 A_Team 3 IL-1 3 B_Team 2 IL-1 4 A_Team 1 IL-1 5 A_Team 1 IL-2 1 A_Team 5 IL-2 2 C_Team 3 我想要的是根据顺序列对相同命名的团队进行分组,这些团队也是连续的团队
ID ORDER TEAM TIME
IL-1 1 A_Team 11
IL-1 2 A_Team 3
IL-1 3 B_Team 2
IL-1 4 A_Team 1
IL-1 5 A_Team 1
IL-2 1 A_Team 5
IL-2 2 C_Team 3
我想要的是根据顺序列对相同命名的团队进行分组,这些团队也是连续的团队
因此,结果表应该如下所示
IL-1 1 A_Team 14
IL-1 2 B_Team 2
IL-1 3 A_Team 2
IL-2 1 A_Team 5
IL-2 2 C_Team 3
谢谢
编辑:根据nang的回答,我将ID列添加到我的表中。您的示例中有一个问题。为什么第6行和第2行不应该是连续的团队 1 A_团队5 2 A_团队3 但是,以下内容可能对您有用:
select neworder, name, sum([time]) from (
select min(n1.[order]) neworder, n2.[order], n2.name, n2.[time]
from mytable n1, mytable n2
where n1.Name = n2.Name
and n2.[order] >= n1.[order]
and not exists(select 1 from mytable n3 where n3.name != n1.name and n3.[order] > n1.[order] and n3.[order] < n2.[order])
group by n2.[order], n2.name, n2.[time]) x
group by neworder, name
结果:
neworder名称没有列名称
1 A_团队19
4 A_团队2
3 B_团队2
2 C_Team 3对于您提到的关于顺序团队的问题,我编辑了我的问题,并将ID字段添加到我的表格中,这是我以前没有写过的,目的是使表格在提问时看起来更简单。