人気順位
配点 : 40点難易度 : 4
制限実行時間 : 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の関数および構文などについては、「受験ルール・用語」をご確認ください。

問題

受注日(ORDER_DATE)が2023年4月1日から6月30日までの受注テーブル(ORDERS)に紐付く受注データ明細(ORDERS_DTL)から、商品ごとに受注数量(ORDER_QTY)を集計して、商品テーブル(ITEM)の人気順位(ITEM_POPULAR_RANK)を設定しなさい。
集計した受注数量が多い商品から順に1からの連番とする。ただし、集計した受注数量が同じ場合は、最新の受注日が新しい商品を上位とし、最新の受注日も同じ場合は、商品コード(ITEM_CODE)の降順で設定すること。また、対象期間に受注が存在しない商品の人気順位は、0を設定すること。

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


テーブル定義

テーブル名: ITEM

主キー 列名 データ型 必須 デフォルト値
✔︎ ITEM_CODE VARCHAR ✔︎ NULL
ITEM_NAME VARCHAR ✔︎ NULL
ITEM_TYPE INTEGER ✔︎ NULL
STOCK_MANAGEMENT_TYPE INTEGER ✔︎ NULL
TAX_TYPE VARCHAR ✔︎ NULL
TAX_NO INTEGER ✔︎ NULL
SHORT_DESCRIPTION VARCHAR NULL
SALE_START_DATE VARCHAR NULL
SALE_END_DATE VARCHAR NULL
DISCOUNT_PRICE_START_DATETIME VARCHAR NULL
DISCOUNT_PRICE_END_DATETIME VARCHAR NULL
DELIVERY_TYPE_NO INTEGER ✔︎ NULL
RECOMMEND_ITEM_RANK INTEGER ✔︎ NULL
ITEM_POPULAR_RANK INTEGER ✔︎ NULL
UPDATE_USER_NAME VARCHAR(50) NULL
USER_UPDATE_DATETIME VARCHAR CURRENT_TIMESTAMP

テーブル名: ORDERS

主キー 列名 データ型 必須 デフォルト値
✔︎ ORDER_NO VARCHAR ✔︎ NULL
ORDER_DATE VARCHAR ✔︎ NULL
DEPT_CODE VARCHAR ✔︎ NULL
CUST_CODE VARCHAR ✔︎ NULL
EMP_CODE VARCHAR ✔︎ NULL
REQUIRED_DATE VARCHAR NULL
CUSTORDER_NO VARCHAR NULL
WH_CODE VARCHAR ✔︎ NULL
ORDER_AMNT INTEGER ✔︎ 0
CMP_TAX INTEGER ✔︎ 0
SLIP_COMMENT VARCHAR NULL
UPDATE_USER_NAME VARCHAR NULL
USER_UPDATE_DATETIME VARCHAR CURRENT_TIMESTAMP

テーブル名: ORDERS_DTL

主キー 列名 データ型 必須 デフォルト値
✔︎ ORDER_NO VARCHAR ✔︎ NULL
✔︎ LINE_NO INTEGER ✔︎ NULL
ITEM_CODE VARCHAR ✔︎ NULL
UNITPRICE INTEGER ✔︎ 0
ORDER_QTY INTEGER ✔︎ 1
CMP_TAX_RATE INTEGER NULL
RESERVE_QTY INTEGER 0
DELIVERY_ORDER_QTY INTEGER 0
DELIVERED_QTY INTEGER 0
COMPLETE_FLG INTEGER ✔︎ 0
DISCOUNT INTEGER ✔︎ 0
DELIVERY_DATE VARCHAR NULL
UPDATE_USER_NAME VARCHAR NULL
USER_UPDATE_DATETIME VARCHAR CURRENT_TIMESTAMP

サンプルデータ

テーブル名: ITEM

ITEM_CODE ITEM_NAME ITEM_TYPE STOCK_MANAGEMENT_TYPE TAX_TYPE TAX_NO SHORT_DESCRIPTION SALE_START_DATE SALE_END_DATE DISCOUNT_PRICE_START_DATETIME DISCOUNT_PRICE_END_DATETIME DELIVERY_TYPE_NO RECOMMEND_ITEM_RANK ITEM_POPULAR_RANK UPDATE_USER_NAME USER_UPDATE_DATETIME
P001 フリルブラウスRock 1 1 1 2019 NULL 2023-01-21 NULL NULL NULL 20 0 2 SYSTEM 2023-01-01 12:12:12
P002 フリルハイネックブラウス 1 1 1 2019 NULL 2023-01-21 NULL NULL NULL 10 0 3 SYSTEM 2023-01-01 12:12:12
P003 オフショルダーブラウス 1 1 1 2019 NULL 2023-01-21 NULL NULL NULL 20 0 0 SYSTEM 2023-01-01 12:12:12
P004 Vネックカットソー 1 1 1 2019 NULL 2023-01-21 NULL NULL NULL 10 0 5 SYSTEM 2023-01-01 12:12:12
P005 カラーピグメントカットソー 1 1 1 2019 NULL 2023-01-21 NULL NULL NULL 20 0 6 SYSTEM 2023-01-01 12:12:12
P006 ボーダーカットソー 1 1 1 2019 NULL 2023-01-21 NULL NULL NULL 10 0 7 SYSTEM 2023-01-01 12:12:12
P007 半袖鹿の子ポロシャツ 1 1 1 2019 NULL 2023-01-21 NULL NULL NULL 20 0 8 SYSTEM 2023-01-01 12:12:12
P008 ラインチビポロシャツ 1 0 1 2019 NULL 2023-01-21 NULL NULL NULL 10 0 9 SYSTEM 2023-01-01 12:12:12
P009 リブタンクトップ 1 0 1 2019 NULL 2023-01-21 NULL NULL NULL 20 0 10 SYSTEM 2023-01-01 12:12:12
P010 ロングタンクトップ 1 1 1 2019 NULL 2023-01-21 NULL NULL NULL 10 0 1 SYSTEM 2023-01-01 12:12:12

テーブル名: ORDERS

ORDER_NO ORDER_DATE DEPT_CODE CUST_CODE EMP_CODE REQUIRED_DATE CUSTORDER_NO WH_CODE ORDER_AMNT CMP_TAX SLIP_COMMENT UPDATE_USER_NAME USER_UPDATE_DATETIME
OR0001 2023-06-29 D100 C2001 E001 NULL NULL 100 2800 280 NULL SYSTEM 2023-08-10 01:01:01
OR0002 2023-06-20 D100 C1001 E002 NULL NULL 200 9400 940 NULL SYSTEM 2023-08-10 01:01:01
OR0003 2023-06-10 D200 C1002 E003 NULL NULL 200 2800 280 NULL SYSTEM 2023-08-10 01:01:01
OR0004 2023-06-01 D200 C2001 E003 NULL NULL 100 9800 980 NULL SYSTEM 2023-08-10 01:01:01
OR0005 2023-05-31 D300 C1002 E002 NULL NULL 200 4200 420 NULL SYSTEM 2023-08-10 01:01:01
OR0006 2023-05-30 D200 C2003 E003 NULL NULL 200 3210 321 NULL SYSTEM 2023-08-10 01:01:01
OR0007 2023-05-02 D200 C2003 E002 NULL NULL 100 7200 720 NULL SYSTEM 2023-08-10 01:01:01
OR0008 2023-05-01 D100 C1003 E002 NULL NULL 100 8410 841 NULL SYSTEM 2023-08-10 01:01:01
OR0009 2023-05-01 D100 C1001 E001 NULL NULL 100 4700 470 NULL SYSTEM 2023-08-10 01:01:01
OR0010 2023-05-01 D200 C2003 E002 NULL NULL 300 13800 1380 NULL SYSTEM 2023-08-10 01:01:01
OR0011 2023-07-01 D100 C1001 E002 NULL NULL 300 6000 600 NULL SYSTEM 2023-08-10 01:01:01
OR0012 2023-04-30 D300 C2003 E001 NULL NULL 300 4830 483 NULL SYSTEM 2023-08-10 01:01:01
OR0013 2023-04-29 D100 C1003 E003 NULL NULL 100 4800 480 NULL SYSTEM 2023-08-10 01:01:01
OR0113 2023-04-02 D100 C1003 E002 NULL NULL 200 1000 100 NULL SYSTEM 2023-08-10 01:01:01
OR0114 2023-06-30 D100 C1003 E003 NULL NULL 200 2200 220 NULL SYSTEM 2023-08-10 01:01:01
OR0115 2023-04-01 D100 C1001 E002 NULL NULL 100 16200 1620 NULL SYSTEM 2023-08-10 01:01:01
OR0116 2023-03-31 D100 C1004 E002 NULL NULL 100 1200 120 NULL SYSTEM 2023-08-10 01:01:01

テーブル名: ORDERS_DTL

ORDER_NO LINE_NO ITEM_CODE UNITPRICE ORDER_QTY CMP_TAX_RATE RESERVE_QTY DELIVERY_ORDER_QTY DELIVERED_QTY COMPLETE_FLG DISCOUNT DELIVERY_DATE UPDATE_USER_NAME USER_UPDATE_DATETIME
OR0001 1 P001 1000 1 10 0 0 0 0 0 NULL SYSTEM 2023-08-10 01:01:01
OR0001 2 P009 1800 1 10 0 0 0 0 0 NULL SYSTEM 2023-08-10 01:01:01
OR0002 1 P010 1100 2 10 0 0 0 0 0 NULL SYSTEM 2023-08-10 01:01:01
OR0002 2 P008 2400 3 10 0 0 0 0 0 NULL SYSTEM 2023-08-10 01:01:01
OR0003 1 P001 1000 1 10 0 0 0 0 0 NULL SYSTEM 2023-08-10 01:01:01
OR0003 2 P009 1800 1 10 0 0 0 0 0 NULL SYSTEM 2023-08-10 01:01:01
OR0004 1 P002 1300 2 10 0 0 0 0 0 NULL SYSTEM 2023-08-10 01:01:01
OR0004 2 P005 1200 6 10 0 0 0 0 0 NULL SYSTEM 2023-08-10 01:01:01
OR0005 1 P002 1200 2 10 0 0 0 0 0 NULL SYSTEM 2023-08-10 01:01:01
OR0005 2 P006 1800 1 10 0 0 0 0 0 NULL SYSTEM 2023-08-10 01:01:01
OR0006 1 P005 1210 1 10 0 0 0 0 0 NULL SYSTEM 2023-08-10 01:01:01
OR0006 2 P002 1000 2 10 0 0 0 0 0 NULL SYSTEM 2023-08-10 01:01:01
OR0007 1 P005 1200 3 10 0 0 0 0 0 NULL SYSTEM 2023-08-10 01:01:01
OR0007 2 P002 1200 3 10 0 0 0 0 0 NULL SYSTEM 2023-08-10 01:01:01
OR0008 1 P006 1800 4 10 0 0 0 0 0 NULL SYSTEM 2023-08-10 01:01:01
OR0008 2 P005 1210 1 10 0 0 0 0 0 NULL SYSTEM 2023-08-10 01:01:01
OR0009 1 P009 2300 1 10 0 0 0 0 0 NULL SYSTEM 2023-08-10 01:01:01
OR0009 2 P005 1200 2 10 0 0 0 0 0 NULL SYSTEM 2023-08-10 01:01:01
OR0010 1 P008 2400 5 10 0 0 0 0 0 NULL SYSTEM 2023-08-10 01:01:01
OR0010 2 P006 1800 1 10 0 0 0 0 0 NULL SYSTEM 2023-08-10 01:01:01
OR0011 1 P009 1800 2 10 0 0 0 0 0 NULL SYSTEM 2023-08-10 01:01:01
OR0011 2 P003 1200 2 10 0 0 0 0 0 NULL SYSTEM 2023-08-10 01:01:01
OR0012 1 P005 1200 1 10 0 0 0 0 0 NULL SYSTEM 2023-08-10 01:01:01
OR0012 2 P010 1210 3 10 0 0 0 0 0 NULL SYSTEM 2023-08-10 01:01:01
OR0013 1 P006 1800 2 10 0 0 0 0 0 NULL SYSTEM 2023-08-10 01:01:01
OR0013 2 P005 1200 1 10 0 0 0 0 0 NULL SYSTEM 2023-08-10 01:01:01
OR0113 1 P001 1000 1 10 0 0 0 0 0 NULL SYSTEM 2023-05-30 01:01:01
OR0114 1 P010 1100 2 10 0 0 0 0 0 NULL SYSTEM 2023-05-30 01:01:01
OR0115 1 P005 1200 2 10 0 0 0 0 0 NULL SYSTEM 2023-05-30 01:01:01
OR0115 2 P008 2400 5 10 0 0 0 0 0 NULL SYSTEM 2023-05-30 01:01:01
OR0115 3 P006 1800 1 10 0 0 0 0 0 NULL SYSTEM 2023-05-30 01:01:01
OR0116 1 P006 1200 1 10 0 0 0 0 0 NULL SYSTEM 2023-05-30 01:01:01
Sorry, Japanese Only.