ソースコード
WITH TEMP AS (
    SELECT
        ITEM_CODE,
        RANK() OVER(
            ORDER BY
                SUM(ORDER_QTY) DESC,
                MAX(ORDER_DATE) DESC,
                MAX(ITEM_CODE) DESC
        ) AS R
    FROM
        ORDERS
    INNER JOIN
        ORDERS_DTL
    ON
        ORDERS.ORDER_NO = ORDERS_DTL.ORDER_NO
    WHERE
        ORDER_DATE BETWEEN "2023-04-01" AND "2023-06-30"
    GROUP BY
        ITEM_CODE
)
UPDATE
    ITEM
SET
    ITEM_POPULAR_RANK = COALESCE((SELECT R FROM TEMP WHERE TEMP.ITEM_CODE = ITEM.ITEM_CODE), 0)
-- COALESCE(X, Y) は X が NULL のとき Y を返す。
-- (SELECT X FROM Y WHERE Z) で、Y から Z を満たす要素 X を返す関数みたいになる。
-- このとき、X が一行一列の表じゃないと RE になる。
-- 8 行目の MAX いらんかも。
提出情報
提出日時2023/08/21 02:00:06
コンテスト第8回 SQLコンテスト
問題人気順位
受験者tabr
状態 (詳細)AC
(Accepted: 正答)
メモリ使用量79 MB
メッセージ
テストケース(通過数/総数)
2/2
状態
メモリ使用量
データパターン1
AC
79 MB
データパターン2
AC
76 MB