1

私はそのようなテーブルを持っています

   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

私が欲しいのは、シーケンシャルチームでもある同じ名前のチームをグループ化することです(これはORDER列によるものです)

したがって、結果テーブルは次のようになります。

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

ありがとう

編集:ナンの答えに応じて、ID列をテーブルに追加しました。

4

1 に答える 1

0

あなたの例には問題があります。行 #6 と #2 を「連続チーム」にしないのはなぜですか?

1 A_チーム 5

2A_チーム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 名 (列名なし)

1A_チーム19

4A_チーム2

3B_チーム2

2 C_チーム 3

于 2010-04-26T08:44:45.637 に答える