• ベストアンサー

集計のSQL文について

SQLでの集計方法について質問です。 Oracle8iを使用しています。 あるテーブルに以下のようなレコードがあります。 ID 回数 値 1   1  100 1   2  200 1   3  300 2   1  150 2   2  550 .... この登録されている値をそのIDごとに、その回数まで回数ごとにサマリーした結果を出力したいのですが どうすればよいでしょうか。 ID 回数 値 1   1  100  ・・・(100) 1   2  300  ・・・(100+200) 1   3  600  ・・・(100+200+300) 2   1  150  ・・・(150) 2   2  700  ・・・(150+550) 宜しくお願いします

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

  • ベストアンサー
回答No.1

8iでもいけると思いますが、以下ではダメでしょうか? select T.ID,T.回数 ,(select sum(値) from TABLENAME where ID=T.ID and 回数<=T.回数) AS 値 from TABLENAME T;

golog
質問者

お礼

なんとかできそうです。 ありがとうございました。

すると、全ての回答が全文表示されます。

その他の回答 (1)

回答No.2

8iエンタープライズ版なら、分析関数を使えば・・ select ID,回数,sum(値) over(partition by ID order by 回数) 値 from TARGET; な感じで書けると思いますよ。

golog
質問者

お礼

分析関数は詳しくなかったので参考にさせていただきます。 ありがとうございました。

すると、全ての回答が全文表示されます。

専門家に質問してみよう