こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

通番を振りたい

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

投稿日時 - 2004-08-02 14:26:43

QNo.948267

すぐに回答ほしいです

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

...大変申し訳ないです。

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

投稿日時 - 2004-08-02 17:56:26

お礼

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

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

投稿日時 - 2004-08-02 20:16:39

このQ&Aは役に立ちましたか?

14人が「このQ&Aが役に立った」と投票しています

回答(4)

ANo.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

投稿日時 - 2004-08-02 17:52:55

ANo.2

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

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

投稿日時 - 2004-08-02 17:45:49

ANo.1

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

投稿日時 - 2004-08-02 14:46:43

あなたにオススメの質問