0
は私のテーブルには、私の予想される出力は、彼らが順番にされている場合、私はそれらをグループ化することにしたいクエリ以下
a 4
b 1
a 4
b 5
a 1
ある
a 1
a 2
a 1
b 1
a 2
a 2
b 3
b 2
a 1
です。
は私のテーブルには、私の予想される出力は、彼らが順番にされている場合、私はそれらをグループ化することにしたいクエリ以下
a 4
b 1
a 4
b 5
a 1
ある
a 1
a 2
a 1
b 1
a 2
a 2
b 3
b 2
a 1
です。
dbmsがウィンドウ関数をサポートしている場合、row_numberの差を使用して、同じグループを1つの列の連続した値(同じ値)に割り当てることができます。グループを割り当てた後、各グループの値を合計するのは簡単です。
select col1,sum(col2)
from (select t.*,
row_number() over(order by someid)
- row_number() over(partition by col1 order by someid) as grp
from tablename t
) x
group by col1,grp
tablename、col1、col2、someidを適切な列名に置き換えます。 someidは注文する列でなければなりません。
(1)使用しているデータベースで質問にタグを付けてください。 (2)SQLテーブルは、*順序付けられていない*集合を表します。順序を指定する列がなければ、あなたの質問は無意味です。 –