重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

以下を実現する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を取り出したいです。

よろしくお願い致します。

A 回答 (3件)

>0に近い値から足し算を行い



SQLではそういう制御はできないので、PL/pgSQL等を使用してください。
    • good
    • 0

#1、#2回答者です。



#2の回答は質問内容と合っていませんでした。
無視してください。
    • good
    • 0
この回答へのお礼

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

お礼日時:2006/11/01 13:05

#1回答者です。



質問のケースに限っては、以下のSQLで実現可能だと思います。

select id,number
from i_num
where number>(select sum(number)/count(*) from i_num)
order by number
limit 1;

こういった処理はSQLで無理やりやるより、ストアドプロシジャやアプリケーシュンでやった方が、性能が出たり処理も簡単にできる場合が多いです。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す