t
次のように入力されたテーブルがあるとします。
x y z
- - -
A 1 A
A 4 A
A 6 B
A 7 A
B 1 A
B 2 A
基本的に、列 x と z はランダムな文字と y の乱数です。
次のように行を集約したい:
x z min(y) max(y)
- - ------ ------
A A 1 4
A B 6 6
A A 7 7
B A 1 2
つまり、行が x、y、および z で順序付けられている場合、 x および z の連続するグループごとに最小および最大の y を選択します。
このクエリは必要なものではないことに注意してください。
select x, z, min(y), max(y)
from t
group by x, z
これにより、次の望ましくない結果が生じるため:
x z min(y) max(y)
- - ------ ------
A A 1 7
A B 6 6
B A 1 2
質問は、SQL で必要なものを表現する方法はありますか?
(ソリューションが SQL ダイアレクトに依存する場合: Oracle ソリューションが優先されます。)