ベストアンサー ※ ChatGPTを利用し、要約された質問です(原文:人口の都道府県別の割合を求めるには・・・?) 都道府県別人口割合を求める方法 2012/01/01 18:47 このQ&Aのポイント MySQL4.1を使用して、都道府県別の人口割合を求める方法について説明します。データベースに格納された都道府県別の人口データを使用して、各都道府県の人口割合を計算します。SELECT文を使用し、各都道府県の人口を合計した値で割り、割合を求めることができます。 人口の都道府県別の割合を求めるには・・・? バージョンは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件の結果しか表示されません。 どなたか解説して頂けないでしょうか。 質問の原文を閉じる 質問の原文を表示する みんなの回答 (3) 専門家の回答 質問者が選んだベストアンサー ベストアンサー yambejp ベストアンサー率51% (3827/7415) 2012/01/02 00:38 回答No.2 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; 質問者 お礼 2012/01/03 19:22 ありがとうございました。 なるほど。SELECT文の中で再びSELECT文を使えるのですね。 勉強になりました。 広告を見て全文表示する ログインすると、全ての回答が全文表示されます。 通報する ありがとう 0 その他の回答 (2) osamuy ベストアンサー率42% (1231/2878) 2012/01/02 03:15 回答No.3 検索で見つかる下記情報でいけるかと。 http://okwave.jp/qa/q3332359.html ANo.2のyamabejpさんのクエリでもOK。 (こっちのほうが効率よいみたい) mysql-server 4.1.21 on linux debain squeeze 6.0.3で確認。 画像を拡大する 質問者 お礼 2012/01/03 19:28 ご回答ありがとうございました。 実はこの過去質問も参照したのですが、私の理解力不足もあり理解することができませんでした。 一応No.2さんのクエリで解決いたしましたので、ベストアンサーはNo.2さんに差し上げることにしましたが、丁寧に御付き合い下さったことを本当に感謝しております。 ありがとうございました。 広告を見て全文表示する ログインすると、全ての回答が全文表示されます。 通報する ありがとう 0 osamuy ベストアンサー率42% (1231/2878) 2012/01/01 21:04 回答No.1 過去質問を検索してみるとか。 http://oshiete.goo.ne.jp/search_cse/result/?code=utf8&MT=mysql+%E5%89%B2%E5%90%88%E3%82%92%E6%B1%82%E3%82%81%E3%82%8B&x=11&y=11 質問者 補足 2012/01/01 22:26 ご回答ありがとうございます。 はい。過去の質問も一通り確認したのですが、 適切な回答を見つけられなかった(MySQLでなかったり、割る数値が固定で決まっているなど)ため、 直接質問した次第です。 引き続き回答を募集しています。 何卒よろしくお願いします。 広告を見て全文表示する ログインすると、全ての回答が全文表示されます。 通報する ありがとう 0 カテゴリ [技術者向] コンピューターデータベースMySQL 関連するQ&A dreamweaver都道府県選択フォーム dreamweaverCS6で都道府県を選択するフォーム作りたいですがうまくいきません。 「挿入」メニューから「フォーム」→「フォーム」で入力範囲を作成してその中に「名前」や「メールアドレス」などを「テキストメニュー」で作れますが、「選択(リスト/メニュー)」で都道府県とするとコード欄には次のコードが生成されています。 <label for="pref">都道府県</label> <select name="pref" id="pref"> </select> 上記に都道府県名を記述していくのでしょが、記述しても先頭のフィルドには「北海道」だけしか表示されていず他の県名は表示されていません。よって、選択することができません。 <option value="1">北海道</option> <option value="2">青森県</option> <option value="3">岩手県</option> <option value="4">宮城県</option> <option value="5">秋田県</option> <option value="6">山形県</option> <option value="7">福島県</option> ・ ・ ・ <option value="47">沖縄県</option> また、47都道府県を入力するのは大変なので、上記をコピーではなく別のメモ帳に下記のように準備してあるのを正規表現というのがあるそうですが一括で変化する方法も併せて教えて戴けると幸いです。 1 北海道 2 青森県 3 岩手県 4 宮城県 5 秋田県 6 山形県 7 福島県 ・ ・ ・ 47 沖縄県 php セレクトボックス 値取得 現在phpでフォームを作成しています。 都道府県選択のフォームがあり、データベースに都道府県のマスタが管理されています。 都道府県には北海道~沖縄まで順番にIDが振られています。 選択フォームはセレクトボックスになります。 ソースは簡単ですが <option value="<?php echo $prefid; ?>"><?php echo $prefname; ?></option> とループさせて下記の状態になります。 <select name="pref"> <option value="1">北海道</option> <option value="2">青森県</option> <option value="13">東京都</option> <option value="20">愛知県</option> <option value="47">沖縄</option> </select> とあり、選択された(例:北海道を選択)のち確認画面では1と表示されます。 これを北海道と表示させたいのですが、どのように作ったらよろしいでしょうか? sessionは使用しています。 $_SESSION['pref'] = $_REQUEST['pref']; で値受け取っています。 おわかりの方がいらっしゃいましたらご教示お願いします。 都道府県別人口減少の要因 総務省統計局のここhttp://www.stat.go.jp/data/jinsui/index.htmの資料から試算すると、 ここ10年の人口減少率上位10の都道府県は、 1.秋田県 2.和歌山県 3.青森県 4.島根県 5.長崎県 6.山口県 7.山形県 8.岩手県 9.高知県 10.鹿児島県 となるのですが、それぞれどのような要因でこのような結果になったのでしょうか? どれか1つだけでもかまわないので知っている方がいたら教えてください。 ネットワークエンジニアとは?技術職の未来を考える OKWAVE コラム SQL ServerのINNER JOINについて SQL Server 2008 R2のINNER JOINについて質問させて下さい。 ------------------------------ SELECT * FROM [Customer] INNER JOIN Pref ON Customer.CustomerPref1 = Pref.PrefId ON Customer.CustomerPref2 = Pref.PrefId ON Customer.CustomerPref3 = Pref.PrefId WHERE ([CustomerId] = 123) ------------------------------ 3つもONがあって変なSQL文となっております。 (当然SQLエラーとなります。) やりたい事は、 顧客フォーム[Customer]の中に、都道府県をプルダウン選択する項目が3つあります。 3つとも都道府県マスタテーブルをリレーション(FK)しております。 3つの都道府県項目で「都道府県名」をそれぞれSELECTするには、 どうしたらよいでしょうか? ご教授頂けますようお願い申し上げます。 ------------------ ▼DB情報 顧客情報テーブル:Customer 顧客ID:CustomerId 都道府県カラム1:CustomerPref1(1,2,3,~などの値が格納) 都道府県カラム2:CustomerPref2(1,2,3,~などの値が格納) 都道府県カラム3:CustomerPref3(1,2,3,~などの値が格納) 都道府県マスタテーブル:Pref 都道府県ID:PrefId(1, 2, 3,~などの値が格納) 都道府県名:PrefName(1:北海道, 2:青森県, 3:岩手県~などの値が格納) 都道府県の人口 Wikipediaの都道府県の人口一覧を見てて 面白いデータを発見しました。 http://ja.wikipedia.org/wiki/%E9%83%BD%E9%81%93%E5%BA%9C%E7%9C%8C%E3%81%AE%E4%BA%BA%E5%8F%A3%E4%B8%80%E8%A6%A7 1920年(大正9年)の北海道の人口が235万人(全国3位)と 1888年(明治21年)の新潟県の人口が166万人(全国2位)の理由が分かる方いたら教えて下さい。 「都道府県」の順 北海道、青森、、の順のことでなく、 「都道府県」の4つの順番のことです。 最初に首都である「都」が来るのは良いとして、最も多い「県」が最後に来るのは何故ですか? また「都道府県」の別の言い方はありますか? excelで標準偏差の出し方 excelで標準偏差を出したいです。 下のような市区町村別のデータが書いてある表があり、各都道府県別の人口の標準偏差を出したいです。 A B C(ここに人口のデータ) 1北海道 ○○市 2北海道 ○○市 3北海道 ○○市 4北海道 〃 5北海道 〃 6青森県 〃 7青森県 〃 8青森県 〃 9青森県 〃 10秋田県 〃 11秋田県 〃 12秋田県 〃 13秋田県 〃 ・ ・ ・ 「=STDEVP(C1:C5)」などと都道府県ごとにやるのでは手間がかかってしまうため、例えば北海道のデータを入力すればあとはそれを下にドラッグすればすべてのデータが正しく出るようにしたいです。 IF関数を使うのかと思ったのですが、いまいちやり方が分かりません。 excelに詳しい方、教えていただければ幸いです 都道府県 (どこのサイトで質問したらよいかわからないのですが) 小学校の時でしょうか? 都道府県の根拠を教わるのは。 記憶では「都」は首都だから(東京)、「道」は県がいくつか集まったくらい大きさだから(北海道)、「府」は昔の首都(京都) と首都に次いで人口の多いところだから(大阪)、その他一般が「県」 だったような、そこで質問です。 (1)この都道府県の意味合いは大体これで正しいでしょうか? (2)だとすると神奈川県が既に2番目なので神奈川府、になって大阪が県に近くなるのでしょうか?(それとも法案審議中?) 一度のsqlで値を取得するには mysql5です。 テーブル名pref(都道府県) id,name 1,北海道 2,青森県 3,秋田県 ・・・ テーブル名user(会員) id,pref_flg,addr01,addr02 1,1,市町村,それいかの住所 2,2,市町村,それいかの住所 3,3,市町村,それいかの住所 ・・・ 上記のようなテーブルであるとした場合userをselectしデータを取得します。 SELECT id, CONCAT(pref_flg, addr01, addr02) AS addr FROM user WHERE id = ? この結果addrには『1(※都道府県id)市町村それいかの住所』で取得できるのですが 一度のsqlで都道府県名も取得するにはどうすればできますか? 具体的には 『1(都道府県id)市町村それいかの住所』 を 『都道府県名市町村それいかの住所』 としてidではなく名称で取得したいです。 単純にuserに都道府県名を入れればできるのですが上記のように複数のテーブルで管理する場合の 方法を教えてください。 SQL中の自作関数 SQL中の自作関数 次のような自作関数があって都道府県別に連番を取得しようと思います。 ADOとADO.NETでやってみるのですがADOだと正常に関数で処理されますが ADO.NETの方は 実行時に "式に未定義関数'Get_Pref_Code'" があります、 とエラーになります。 ADO.NETの方は何がマズいのでしょうか? Function Get_Pref_Code(ByVal Pref As String) As String Dim RT As String Select Case Pref Case "北海道" : RT = "01" Case "青森県" : RT = "02" Case "岩手県" : RT = "03" Case "宮城県" : RT = "04" Case "秋田県" : RT = "05" Case "山形県" : RT = "06" Case "福島県" : RT = "07" Case "茨城県" : RT = "08" End Select Get_Pref_Code = RT End Function ADO/ACCESS2002の場合: mySQL = "UPDATE KEN_ALL SET KEN_ALL.Pref_Code = Get_Pref_Code([Pref])" myCon.Execute mySQL ADO.NET/VB2005の場合: mySQL = "UPDATE KEN_ALL SET KEN_ALL.Pref_Code = Get_Pref_Code([Pref])" myCmd = New OleDb.OleDbCommand(mySQL, myCon) myCmd.ExecuteNonQuery() テーブル名=KEN_ALL 更新フィールド=Pref_Code 評価フィールド=Pref MySQLでのcsvファイル読み込み 必要に駆られたのでMySQLについて勉強しているのですが、 ファイル読み込みで問題が起こり、詰まってしまっています。 MySQL上で自作したsampledb内にテーブルprefectureを作成し、 そのテーブル内にPrefecture.csvファイル(文字コードshiftJIS)からデータを入力しようと しているのですが、最初の一件しかテーブルに格納されず、他のデータが入らないのです。 以下に入力したクエリ文を掲載します。 create database sampledb default character set sjis create table Prefecture(PREF_CD INT(3),PREF_NAME VARCHAR(10),PRIMARY KEY(PREF_CD)) LOAD DATA INFILE "Prefecture.csv" -> INTO TABLE Prefecture FIELDS TERMINATED BY"," -> LINES TERMINATED BY"\r\n"; Query OK, 1 row affected, 1 warning (0.08 sec) Records: 1 Deleted: 0 Skipped: 0 Warnings: 1 select * from prefecture +---------+-----------+ | PREF_CD | PREF_NAME | +---------+-----------+ | 1 | 北海道 2 | +---------+-----------+ 1 row in set (0.00 sec) Prefecture.csvについてはこちらのサイト仕様上添付できませんでしたが、 1,北海道 2,青森県 3,岩手県 . . .(以下省略) のように、47都道府県の番号と地名を並べたものです。 独力では解決法を見出せません。 どうかご助力お願いします。 配列の書き方 多次元配列を使って都道府県と地域名と運賃データを格納しようと思っています。 例えば 北海道 都道府県コード1 サイズによって 1470,1680,1890,2100,2310,2520 青森県 都道府県コード2 秋田県 都道府県コード3 岩手県 都道府県コード4 この3県はサイズによって 1050,1260,1470,1680,1890,2100 ・・・ という情報を格納したいです。 入力された都道府県データと個数で送料を判定したいのですがどのようにすればいいのか途方にくれています。 ご教授ください。 AIは使う人の年齢や市場にも影響する?人工知能の可能性 OKWAVE コラム 重複レコードの表示について イベントテーブルがあり、イベントの内容(1つ以上)はプログラムテーブルに格納しています。 さらにイベントがどの県で行われるかという情報を格納するエリアテーブル、 県のマスタと4つで構成しました。 花火大会を条件にテーブルを結合したとき4件あります。 while ($col = mysql_fetch_array($rst)) {}で表示させたいのですが、 重複している部分を1件にして表示する方法がわかりません。 distinctではできませんでした。 どなたかご教授いただけないでしょうか。よろしくお願いします。 「結合結果」 花火大会|打ち上げ |北海道 花火大会|打ち上げ |青森 花火大会|出店 |北海道 花火大会|出店 |岩手 「イベントテーブル」 event_id |name 1 |花火大会 2 |マラソン大会 「プログラムテーブル」 program_id |event_id | program 1 |1 |打ち上げ 2 |1 |出店 3 |2 |開会式 「エリアテーブル」 area_id| program_id | pref_id 1 | 1 | 1 2 | 1 | 2 3 | 2 | 1 「県マスタ」 pref_id | name 1 |北海道 2 |青森 値の受け取り方 nameタグが下記のようになっている場合、 PHPではどのように取得すれば良いのでしょうか? selectタグは取得できましたが、配列になっている場合の取得方法が分かりません。 ---HTML--- <form action="abc.php" method="post" > <input type="text" name="ord[name]" size="30" VALUE=""> <input type="text" name="ord[company]" size="30" VALUE=""> <select name="pref"> <option value="">-- 都道府県 --</option> <option value="北海道" >北海道</option> <option value="青森県" >青森県</option> <option value="岩手県" >岩手県</option> </select> ・ ・ ---abc.php--- <html> <head><title>output</title></head> <body> <?php $pref = $_POST['pref']; print ("次のデータを受け取りました<br />"); print ("住所:$pref<br />"); ?> </body> </html> アドレスを重複させずに表示したい MYSQLは初心者なので教えてください。 アドレス,名前,都道府県 *****@*****,大木.福岡県 みたいな形式でmysqlのデータベースに アドレスと名前、都道府県が登録されています。 アドレスも名前も都道府県も重複されて登録されている 可能性があります。 福岡県の人にメールを送りたいので、検索する場合 SELECT * FROM `テーブル名` WHERE `Prefecture` = '福岡県' だとアドレスが重複している可能性があります。 このままメールを送るとメールが2回送られてしまう可能性が あります。 かといって SELECT DISTINCT `address` FROM `tyokusetusoudan` WHERE `Prefecture` = '福岡県' だと名前や都道府県名が表示されないので困っています。 アドレスを重複させずに名前や都道府県も表示するように 検索したいのですが、どうすればいいのでしょうか? 都道府県から沿線⇒駅表示 都道府県から沿線⇒駅表示をさせるプログラムを作成したいと考えています。 http://uguisu.skr.jp/html/ajax.html ↑ここのサイトのソースをまねて ↓ここのサイトのようなプログラムを作りたいのですが・・・。 http://www.ekidata.jp/tools/smp_select01.html 都道府県・沿線・駅データはMySQLにあります。 JavaScriptからPHPプログラムを呼び、 PHPプログラム内でDBから必要なデータを持ってきて HTMLに表示させたいのですが・・・・。 <select> <option value="1">都道府県 </select> <select> <option value="001">沿線 </select> <select> <option value="00001">駅名 </select> 3つを表示させたいのですが、いまいちよくわかりません。 innerHTMLを複数書いて<div id="result"></div>を複数書いても うまくいきませんでした。 JavaScriptの知識があまりないのですが、お手柔らかにご教授お願いします。 別のシートで作ったセルの、合計値を表示させる方法を教えてください。 別のシートで作ったセルの、合計値を表示させる方法を教えてください。 シート1で 元となるデータの一覧をつくり シート2で プルダウンで対象のデータを選ぶと 関連したデータの合計値が表示される という作業をしたいと思っています。 たとえば、下記のような作業です。 ------------------------------------------ ■シート1 A B C │都道府県名│市町村名│ 人 口 │ ─┼─────┼────┼─────┼ 1 │ 北海道 │ ■■■ │ 1,234,567│ ─┼─────┼────┼─────┼ 2 │ 青森県 │ ▼▼▼ │ 890,123│ ─┼─────┼────┼─────┼ 3 │ │ ●●● │ 456,789│ ─┼─────┼────┼─────┼ 4 │ │ ××× │ 901,234│ ─┼─────┼────┼─────┼ 5 │ 岩手県 │ ◆◆◆ │ 678,901│ ◆シート2 ・都道府県名 ┌─────┬─┐ │青森県 │▼│ └─────┴─┘ ・人口 ┌───────┐ │2,248,146 │ └───────┘ (「青森」というキーワードを選ぶと、人口の合計値を算出する) ------------------------------------------ VLOOKUPをいじってみたりしたのですが、上手くいかず。。 どなたかエクセルで上記のような作業をご存知の方がいましたら 教えていただけますでしょうか。 よろしくお願いいたします。 郵便番号と都道府県の対応表がほしい 郵便番号と都道府県の対応表がほしいのですが、 どのように手に入れればよいのでしょうか。 何番から何番まで 北海道 何番から何番まで 青森県 ・ ・ ・ 何番から何番まで 沖縄県 こんな感じの表です。 住所から郵便番号を検索するサイトはたくさんあるんですが・・・ プルダウンリストを作りMySQLからデータを取得してonchangeする方法 http://oshiete1.goo.ne.jp/oshiete_new.php3 のように、 プルダウンリストを作りMySQLからデータを取得してonchangeする方法を教えていただけませんか? 技術者向コンピューター ↓*onchangeでデータベースから取得? プログラミング ↓ JavaScript 具体的にやりたいことは、 お店の住所を登録してもらうスクリプトを作りたいと考えています。 そのため、 北海道 ↓ 札幌市 ↓ ○○・・・ のように、都道府県を選ぶとonchangeで市区町村が表示されていく、というようなものを造りたいと考えています。 スクリプトの検索ページで、『北海道』などで検索をかけるつもりですので、データベース(MySQL)に格納したいと思っています。 ざっくりした質問で申し訳ないですが、参考になるページでも結構ですので、教えていただけたらうれしいです。 よろしくお願いします。 テキストボックスに文字列を入れたら自動でプルダウンを選択するには? AJAXを利用して以下のようなことをしています。 1.郵便番号を入れたら自動で住所が表示される。 2.住所は県名と市町村名以下と分離している。 3.県名はプルダウン式で、市町村名はテキストボックスとする。 現在までのテストだと、両方ともテキストボックスの場合までは動作確認できたのですが、プルダウンにした場合のやり方わかりません。 <SELECT name="pref" id="pref"> <OPTION value="北海道">北海道</OPTION> <OPTION value="青森県">青森県</OPTION> ・ ・ </SELECT> テキストボックスの場合は、 var add = xmlDoc.getElementsByTagName('ajaxadd').item(0).firstChild; document.getElementById('add2').value = ajaxadd.data; で取得できています。 ちょっとわかりにくい説明で申し訳ありませんが、よろしくお願いします。 注目のQ&A 「You」や「I」が入った曲といえば? Part2 結婚について考えていない大学生の彼氏について 関東の方に聞きたいです 大阪万博について 駅の清涼飲料水自販機 不倫の慰謝料の請求について 新型コロナウイルスがもたらした功績について教えて 旧姓を使う理由。 回復メディアの保存方法 好きな人を諦める方法 小諸市(長野県)在住でスキーやスノボをする方の用具 カテゴリ [技術者向] コンピューター データベース SQL ServerOraclePostgreSQLMySQLNoSQLその他(データベース) カテゴリ一覧を見る OKWAVE コラム 突然のトラブル?プリンター・メール・LINE編 携帯料金を賢く見直す!格安SIMと端末選びのポイントは? 友達って必要?友情って何だろう 大震災時の現実とは?私たちができる備え 「結婚相談所は恥ずかしい」は時代遅れ!負け組の誤解と出会いの掴み方 あなたにピッタリな商品が見つかる! OKWAVE セレクト コスメ化粧品 化粧水・クレンジングなど 健康食品・サプリ コンブチャなど バス用品 入浴剤・アミノ酸シャンプーなど スマホアプリ マッチングアプリなど ヘアケア 白髪染めヘアカラーなど インターネット回線 プロバイダ、光回線など
お礼
ありがとうございました。 なるほど。SELECT文の中で再びSELECT文を使えるのですね。 勉強になりました。