電子書籍の厳選無料作品が豊富!

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,101
A,B,202
A,C,303
B,C,101
B,C,202

A 回答 (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
    • good
    • 0
この回答へのお礼

おー!すばらしい!!
まさに要件を満たしています!

100点満点を進呈したいところですが、
20ptで勘弁してくださいm(__)m

お礼日時:2004/08/02 20:16

申し訳ありません。


記入漏れがありました。

SELECT
a,
b,
sum(c),
ROW_NUMBER() OVER (PARTITION BY a ORDER BY a,b,sum(c)) RNO
FROM TEST
GROUP BY a,b
    • good
    • 0

たしか9i以降なら可能なはずです。



SELECT
a,
b,
sum(c),
ROW_NUMBER() OVER (PARTITION BY a ORDER BY a,b) RNO
FROM TEST
GROUP BY a,b
    • good
    • 0

ご質問のように番号を振るのはムリだと思います。


連番を振りたい要件は?
それによっては代案があると思いますが・・・
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!