dポイントプレゼントキャンペーン実施中!

バージョンはMySQL4.1です。
下図のような、各都道府県の人口が格納してあるデータベースがあります。
【データベース x001】
|   Pref  |popu|
|________|
|北海道   |568 |
|青森県   |147 |
   ・・・・

ここから、それぞれの都道府県の人口の割合(都道府県人口÷各人口の合計 %表示)を表示させたいのですがうまくいきません。

(こんな感じに表示させたいのです↓)
|   Pref  |popu|percent|
|________|     |
|北海道   |568 |  4.4 |
|青森県   |147 |  1.7 |


SELECT Pref, popu, popu/SUM(popu) from x001;
だと、北海道1件の結果しか表示されません。

どなたか解説して頂けないでしょうか。

A 回答 (3件)

SELECT Pref, popu, popu/(SELECT SUM(popu) FROM x001) as percent from x001;



でいけませんか?
古いmysqlであればsqlは分けたほうがよいかも知れません

SELECT @SUM:=SUM(popu) FROM x001;
SELECT Pref, popu, popu/@SUM as percent from x001;
    • good
    • 0
この回答へのお礼

ありがとうございました。

なるほど。SELECT文の中で再びSELECT文を使えるのですね。
勉強になりました。

お礼日時:2012/01/03 19:22

検索で見つかる下記情報でいけるかと。


http://oshiete.goo.ne.jp/qa/3332359.html

ANo.2のyamabejpさんのクエリでもOK。
(こっちのほうが効率よいみたい)

mysql-server 4.1.21 on linux debain squeeze 6.0.3で確認。
「人口の都道府県別の割合を求めるには・・・」の回答画像3
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。
実はこの過去質問も参照したのですが、私の理解力不足もあり理解することができませんでした。

一応No.2さんのクエリで解決いたしましたので、ベストアンサーはNo.2さんに差し上げることにしましたが、丁寧に御付き合い下さったことを本当に感謝しております。
ありがとうございました。

お礼日時:2012/01/03 19:28

過去質問を検索してみるとか。



http://oshiete.goo.ne.jp/search_cse/result/?code …

この回答への補足

ご回答ありがとうございます。

はい。過去の質問も一通り確認したのですが、
適切な回答を見つけられなかった(MySQLでなかったり、割る数値が固定で決まっているなど)ため、
直接質問した次第です。

引き続き回答を募集しています。
何卒よろしくお願いします。

補足日時:2012/01/01 22:26
    • good
    • 0

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

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