- 締切済み
データの和計算
以下を実現する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を取り出したいです。 よろしくお願い致します。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- chukenkenkou
- ベストアンサー率43% (833/1926)
回答No.3
#1、#2回答者です。 #2の回答は質問内容と合っていませんでした。 無視してください。
- chukenkenkou
- ベストアンサー率43% (833/1926)
回答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で無理やりやるより、ストアドプロシジャやアプリケーシュンでやった方が、性能が出たり処理も簡単にできる場合が多いです。
- chukenkenkou
- ベストアンサー率43% (833/1926)
回答No.1
>0に近い値から足し算を行い SQLではそういう制御はできないので、PL/pgSQL等を使用してください。
お礼
一時テーブルなどを用いてできました。 ありがとうございました。