男性割合
配点 : 10点難易度 : 1
制限実行時間 : 1000ms制限メモリ使用量 : 128 MB
SQLiteの注意点

TOPSIC SQLでは、SQLの実行環境にSQLiteを使用しています。SQLite以外のRDBMSの文法を使用することはできません。
問題を解く際に注意すべきSQLiteの制約について、以下に記載してありますのでご確認下さい。

  1. NUMERIC、INTEGER、REALは、自身のクラスへの変換が推奨されていますが、変換できなかった場合でも、そのまま格納されます。
  2. 新しくデータを追加した場合、既に格納されているデータの中で ROWID の値が最大のものを探し、それに1を加えた値が新しく追加されるデータの ROWID の値として保存されます。
  3. 外部結合は、左外部結合を行う LEFT OUTER JOIN 句のみ使用できます。
    ※2022年12月以降、LEFT / RIGHT / FULL OUTER JOIN が使用可能となりました。
  4. 指定した日付と時刻のタイムゾーンはUTCとして扱われます。
  5. 日付関数や文字列関数については、SQLiteで固有の関数があります。
  6. テーブル項目の論理名が「◯◯日」となっている場合は、日付項目の時分秒は設定されていません。論理名が「◯◯日時」となっている場合は、日付項目の時分秒まで設定されています。
    • 「受注日」の場合は「2021-01-01」
    • 「受注日時」の場合は「2021-01-01 15:15:15」

その他のSQLiteの制約については、SQLiteの公式ドキュメントをご確認ください。
また、ER図の読み方やSQLiteの関数および構文などについては、「受験ルール・用語」をご確認ください。

問題

人口テーブル(TBL_POPULATION)に登録されているデータの、地域毎の総数(TOTAL_AMT)に対する男性数(MALE_AMT)の割合を表示しなさい。
割合は小数第3位を四捨五入して求めなさい。ただし、四捨五入を行った結果、小数第2位が0となった場合、少数第2位は表示しなくてよい。
(例: 0.502 -> 0.50 のとき、 0.5 と表示)

表示項目は以下とする。(エイリアスを使用し→の項目名とする)

  • DISTRICT_CODE
  • DISTRICT_NAME
  • 計算した男性数の割合 → PERCENTAGE

表示順

  1. DISTRICT_CODEの降順

※出典:政府統計の総合窓口(e-Stat)(https://www.e-stat.go.jp/)「令和2年国勢調査 人口等基本集計」を加工して作成

表示フォーマット

※あくまでフォーマットを示すもので、正解例ではありません。行数も正解とは異なります。

DISTRICT_CODE DISTRICT_NAME PERCENTAGE
27232 阪南市 0.47
27231 大阪狭山市 0.47
27230 交野市 0.5
27229 四條畷市 0.49
27228 泉南市 0.48

ER図 (半角:物理名、全角:論理名)


テーブル定義

テーブル名: TBL_POPULATION

主キー 列名 データ型 必須 デフォルト値
✔︎ DISTRICT_CODE VARCHAR ✔︎ NULL
DISTRICT_NAME VARCHAR NULL
TOTAL_AMT REAL NULL
MALE_AMT REAL NULL
FEMALE_AMT REAL NULL

サンプルデータ

テーブル名: TBL_POPULATION

DISTRICT_CODE DISTRICT_NAME TOTAL_AMT MALE_AMT FEMALE_AMT
27217 松原市 116796 56135 60661
27218 大東市 127849 60161 67688
27219 和泉市 155837 74838 80999
27220 箕面市 126819 60169 66650
27221 柏原市 62639 30001 32638
27222 羽曳野市 98257 46169 52088
27223 門真市 119764 58772 60992
27224 摂津東市 127849 60161 67688
27225 高石市 55635 26336 29299
27226 藤井寺市 63688 29951 33737
27227 東大阪市 492760 239693 253067
27228 泉南市 47818 22765 25053
27229 四條畷市 52416 25448 26968
27230 交野市 68000 34000 34000
27231 大阪狭山市 49712 23322 26390
27232 阪南市 34121 15970 18151

Sorry, Japanese Only.