人数差異
配点 : 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)に登録されているデータの、男性数(MALE_AMT)、女性数(FEMALE_AMT)の人数差が5000人以上の地域を表示しなさい。

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

  • DISTRICT_CODE
  • DISTRICT_NAME
  • 人数差の絶対値 → DIFF

表示順

  1. DISTRICT_CODEの降順

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

表示フォーマット

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

DISTRICT_CODE DISTRICT_NAME DIFF
27227 東大阪市 13374
27224 摂津東市 7527
27222 羽曳野市 14081
27220 箕面市 6481
27219 和泉市 6161

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 羽曳野市 118257 66169 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.