中央値の算出
配点 : 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の関数および構文などについては、「受験ルール・用語」をご確認ください。

問題

都道府県毎にコンビニエンスストアの情報を集計したコンビニエンステーブル(CONVENIENCE)より、調査年(SURVEY_YEAR)が2019年の販売額(TOTAL_VALUE)の中央値を求めなさい。ただし、種別コード(KIND_CODE)が'100' (販売額)のデータを対象とする。また、対象データが1件以上存在すること、および、販売額の値は存在することが保証されている。

中央値(median)とは、データを大きい順に並べた時の中央の値を指す。データの件数が偶数の場合は、中央の2つの値の平均値を中央値とする。また、求めた中央値の小数点以下は四捨五入すること。

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

  • 取得した中央値 → SA_MEDIAN

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

表示フォーマット

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

SA_MEDIAN
141180

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


テーブル定義

テーブル名: CONVENIENCE

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

サンプルデータ

テーブル名: CONVENIENCE

SURVEY_YEAR PF_CODE KIND_CODE TOTAL_VALUE
2018 01000 100 582578
2018 02000 100 103334
2018 03000 100 104842
2018 13000 100 1786288
2019 04000 110 241179
2019 05000 100 77025
2019 06000 100 89108
2019 07000 110 210407
2019 08000 100 303839
2019 09000 100 202376
2019 10000 100 190735
2019 11000 100 636818
2019 12000 100 611500
2019 14000 100 856838
2019 15000 100 179695
2019 16000 100 91024
2019 17000 100 99054
2019 18000 100 67078
2019 19000 100 92750
2019 20000 100 193923
2019 21000 100 160626
2019 22000 100 361775
2019 23000 100 737570
2019 24000 100 159636
2019 25000 100 117858
2019 26000 100 224602
2019 27000 100 843223
2019 28000 100 423336
2019 29000 100 89299
2019 30000 100 70033
2019 31000 100 46746
2019 32000 100 54207
2019 33000 100 165406
2019 34000 100 263588
2019 35000 100 122723
2019 36000 100 59338
2019 37000 100 75676
2019 38000 100 103211
2019 40000 100 516372
2019 41000 100 77888
2019 42000 110 108332
2019 43000 110 165968
2019 44000 100 103099
2019 46000 100 0
2020 39000 100 54948
2020 45000 100 90326
2020 47000 100 0
Sorry, Japanese Only.