以下のようなデータが存在する時、
A列、B列でソートし、C列が連続する行の先頭レコードを取得し、連続する項目の件数をカウントすることは可能でしょうか?
【テーブル】
A B C
---- ---- ----
500 1 A
500 2 A
500 3 B
500 4 B
500 5 A
600 1 A
600 2 A
600 3 B
【取得したい結果】
A B C Count
---- ---- ---- ----
500 1 A 2
500 3 B 2
500 5 A 1
600 1 A 2
600 3 B 1
A列、B列でソートし、C列が連続する行の先頭レコードを取得するところまではできたのですが、
件数をカウントする方法が思いつきません。
SELECT A,B,C
FROM(SELECT A,B,C
,NVL(lag(C) over (partition by A order by B),'X' ) AS LAST_A
FROM テーブル)
WHERE C <> LAST_A
もし良い知恵があれば教えてください。
よろしくお願いします。
Oracle 10g