• ベストアンサー

通番を振りたい

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

質問者が選んだベストアンサー

  • ベストアンサー
回答No.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

freshjive
質問者

お礼

おー!すばらしい!! まさに要件を満たしています! 100点満点を進呈したいところですが、 20ptで勘弁してくださいm(__)m

その他の回答 (3)

回答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

回答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

回答No.1

ご質問のように番号を振るのはムリだと思います。 連番を振りたい要件は? それによっては代案があると思いますが・・・

関連するQ&A