質問 |
||
| QNo.2508765 | データの和計算 | |
|---|---|---|
| 質問者:the-ai |
以下を実現する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を取り出したいです。 よろしくお願い致します。 |
|
困り度:
|
||
| 質問投稿日時: 06/10/31 11:51 |
||
回答 |
|
| ANo.3 | #1、#2回答者です。 #2の回答は質問内容と合っていませんでした。 無視してください。 |
|---|---|
| 回答者:chukenkenkou | |
| 種類:アドバイス どんな人:経験者 自信:参考意見 |
|
| 回答日時: 06/10/31 20:40 |
|
| |
| この回答へのお礼 | 一時テーブルなどを用いてできました。 ありがとうございました。 |
回答 |
|
| ANo.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 | |
| 種類:回答 どんな人:経験者 自信:自信あり |
|
| 回答日時: 06/10/31 20:38 |
|
| |
| この回答へのお礼 | この回答にお礼をつける(質問者のみ) |
回答良回答10pt |
|
| ANo.1 | >0に近い値から足し算を行い SQLではそういう制御はできないので、PL/pgSQL等を使用してください。 |
|---|---|
| 回答者:chukenkenkou | |
| 種類:アドバイス どんな人:経験者 自信:自信あり |
|
| 回答日時: 06/10/31 20:17 |
|
| |
| この回答へのお礼 | この回答にお礼をつける(質問者のみ) |