- ベストアンサー
通番を振りたい
select a,b,sum(c) from test group by a,b このようなSQLで以下のような検索結果が 取れたとします。 A,A,10 A,B,20 A,C,30 B,C,10 B,C,20 ここで質問ですが、select句の'a'毎に以下のように 通番を振りたいと思います。これを実現するには どのようにSQLを書けばいいでしょうか? A,A,10 1 A,B,20 2 A,C,30 3 B,C,10 1 B,C,20 2
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
...大変申し訳ないです。 SELECT a, b, sum(c), ROW_NUMBER() OVER (PARTITION BY a ORDER BY a,b,sum(c)) RNO FROM TEST GROUP BY a,b ORDER BY a,b,sum(c),RNO
その他の回答 (3)
- name_mm_ok
- ベストアンサー率48% (12/25)
回答No.3
申し訳ありません。 記入漏れがありました。 SELECT a, b, sum(c), ROW_NUMBER() OVER (PARTITION BY a ORDER BY a,b,sum(c)) RNO FROM TEST GROUP BY a,b
- name_mm_ok
- ベストアンサー率48% (12/25)
回答No.2
たしか9i以降なら可能なはずです。 SELECT a, b, sum(c), ROW_NUMBER() OVER (PARTITION BY a ORDER BY a,b) RNO FROM TEST GROUP BY a,b
- peugeot307
- ベストアンサー率22% (29/130)
回答No.1
ご質問のように番号を振るのはムリだと思います。 連番を振りたい要件は? それによっては代案があると思いますが・・・
お礼
おー!すばらしい!! まさに要件を満たしています! 100点満点を進呈したいところですが、 20ptで勘弁してくださいm(__)m