港入出国者分析
配点 : 30点難易度 : 3
制限実行時間 : 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の関数および構文などについては、「受験ルール・用語」をご確認ください。

問題

港毎に出入国者の人数を集計した出入国集計データより、外国人の入国者が出国者より多い港を抽出しなさい。 種別コードは、'110'(入国者) 、'120'(出国者)となる。

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

  • PORT_CODE → 港コード
  • PORT_NAME → 港名
  • 外国人入国者のAMT → 入国者数
  • 外国人出国者のAMT → 出国者数
  • 外国人入国者のAMT - 外国人出国者のAMTの計算結果 → 差分

表示順

  1. 差分の降順
  2. 港コードの降順

※出典:政府統計の総合窓口(e-Stat)(https://www.e-stat.go.jp/)「出入国管理統計 出入(帰)国者数」を加工して作成

表示フォーマット

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

港コード 港名 入国者数 出国者数 差分
50970 中部(空港) 262182 251135 11047
51270 大阪 4099 1156 2943
51140 富山(空港) 6074 5524 550
50560 茨城(空港) 8218 7948 270
50740 横浜 320 147 173

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


テーブル定義

テーブル名: GRP

主キー 列名 データ型 必須 デフォルト値
✔︎ GROUP_CODE VARCHAR ✔︎ NULL
GROUP_NAME VARCHAR NULL

テーブル名: IMMIGRATION

主キー 列名 データ型 必須 デフォルト値
✔︎ PORT_CODE VARCHAR ✔︎ NULL
✔︎ GROUP_CODE VARCHAR ✔︎ NULL
✔︎ KIND_CODE VARCHAR ✔︎ NULL
AMT INTEGER NULL

テーブル名: PORT

主キー 列名 データ型 必須 デフォルト値
✔︎ PORT_CODE VARCHAR ✔︎ NULL
PORT_NAME IMMIGRATION NULL

サンプルデータ

テーブル名: GRP

GROUP_CODE GROUP_NAME
100
110 日本人
120 外国人
130 協定該当者

テーブル名: IMMIGRATION

PORT_CODE GROUP_CODE KIND_CODE AMT
50210 110 110 1
50210 110 120 28609
50560 120 110 8218
50560 120 120 7948
50720 120 110 634562
50720 120 120 687112
50730 120 110 1460699
50730 120 120 1632782
50740 120 110 320
50740 120 120 147
50970 120 110 262182
50970 120 120 251135
51130 120 110 8287
51130 120 120 9569
51140 120 110 6074
51140 120 120 5524
51250 120 110 1011186
51250 120 120 1115472
51270 120 110 4099
51270 120 120 1156

テーブル名: PORT

PORT_CODE PORT_NAME
50210 新千歳(空港)
50560 茨城(空港)
50720 羽田(空港)
50730 成田(空港)
50740 横浜
50970 中部(空港)
51130 小松(空港)
51140 富山(空港)
51250 関西(空港)
51270 大阪
Sorry, Japanese Only.