ソースコード
--ORDER_DATE:2023年4月1日から6月30日
--ORDER_NOで結合
--商品ごとに受注数量(ORDER_QTY)を集計
--受注数>最新の受注日>商品コード(ITEM_CODE)の降順
--UPDATE ITEM SET ITEM_POPULAR_RANK = 0;
WITH A AS(
SELECT SUM(ORDER_QTY),MAX(ORDER_DATE),ITEM_CODE,
ROW_NUMBER() OVER(ORDER BY SUM(ORDER_QTY) DESC,MAX(ORDER_DATE) DESC,ITEM_CODE DESC) AS PRANK
FROM ORDERS_DTL
JOIN ORDERS
ON ORDERS_DTL.ORDER_NO = ORDERS.ORDER_NO
WHERE ORDERS.ORDER_DATE BETWEEN '2023-04-01' AND '2023-06-30'
GROUP BY ITEM_CODE
)
--集計した受注数量が多い商品から順に1からの連番
--人気順位(ITEM_POPULAR_RANK)
--対象期間に受注が存在しない商品の人気順位は0
UPDATE ITEM SET ITEM_POPULAR_RANK = COALESCE((SELECT PRANK FROM A WHERE A.ITEM_CODE = ITEM.ITEM_CODE), 0);

--SELECT *
--FROM ITEM;
提出情報
提出日時2023/12/19 00:44:45
コンテスト第8回 SQLコンテスト
問題人気順位
受験者inu
状態 (詳細)AC
(Accepted: 正答)
メモリ使用量84 MB
メッセージ
テストケース(通過数/総数)
2/2
状態
メモリ使用量
データパターン1
AC
84 MB
データパターン2
AC
84 MB