販売額のデータ移行
配点 : 20点難易度 : 2
制限実行時間 : 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の関数および構文などについては、「受験ルール・用語」をご確認ください。

問題

コンビニエンスストアの情報を集計したコンビニエンステーブル(CONVENIENCE)より、調査年(SURVEY_YEAR)が2018年のデータを抜き出し、コンビニ販売_2018テーブル(CONVENI_SALE_2018)にデータを挿入しなさい。ただし、種別コード(KIND_CODE) = '100'(販売額)のデータで、集計値(TOTAL_VALUE)がNULL以外のデータを対象とする。

挿入項目は以下とする。

  • SURVEY_YEAR
  • PF_CODE
  • TOTAL_VALUE

※出典:政府統計の総合窓口(e-Stat)(https://www.e-stat.go.jp/)「商業動態統計調査 確報」を加工して作成

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


テーブル定義

テーブル名: CONVENIENCE

主キー 列名 データ型 必須 デフォルト値
✔︎ SURVEY_YEAR INTEGER ✔︎ NULL
✔︎ PF_CODE VARCHAR ✔︎ NULL
✔︎ KIND_CODE VARCHAR ✔︎ NULL
TOTAL_VALUE INTEGER NULL

テーブル名: CONVENI_SALE_2018

主キー 列名 データ型 必須 デフォルト値
✔︎ SURVEY_YEAR INTEGER ✔︎ NULL
✔︎ PF_CODE VARCHAR ✔︎ NULL
TOTAL_VALUE INTEGER NULL

サンプルデータ

テーブル名: CONVENIENCE

SURVEY_YEAR PF_CODE KIND_CODE TOTAL_VALUE
2017 12000 100 599746
2018 01000 100 571042
2018 02000 100 100902
2018 03000 100 103300
2018 04000 100 NULL
2018 05000 100 NULL
2018 06000 100 0
2018 07000 100 207603
2018 08000 100 301756
2018 09000 100 201235
2018 10000 150 189982
2018 11000 150 627670
2019 09000 100 202376
Sorry, Japanese Only.