• 締切済み

データの和計算

以下を実現するSQL文教えてください。 テーブル名:i_num id | number ^^^^^^^^^^^^ a | 5 b | 4 c | 2 d | 6 e | 9 上記の表で、0に近い値から足し算を行い、全体の50%を超えたときのnumberを取り出したいです。 c+b+a+d+e / 全体 が50%を超えた時のnumberは、ここでは、d=6を取り出したいです。 よろしくお願い致します。

みんなの回答

回答No.3

#1、#2回答者です。 #2の回答は質問内容と合っていませんでした。 無視してください。

the-ai
質問者

お礼

一時テーブルなどを用いてできました。 ありがとうございました。

回答No.2

#1回答者です。 質問のケースに限っては、以下のSQLで実現可能だと思います。 select id,number from i_num where number>(select sum(number)/count(*) from i_num) order by number limit 1; こういった処理はSQLで無理やりやるより、ストアドプロシジャやアプリケーシュンでやった方が、性能が出たり処理も簡単にできる場合が多いです。

回答No.1

>0に近い値から足し算を行い SQLではそういう制御はできないので、PL/pgSQL等を使用してください。