ソースコード
WITH LatestCheckups AS (
    SELECT 
        CHECKUP_DATE,
        MEMBER_CODE,
        WEIGHT,
        ROW_NUMBER() OVER (PARTITION BY MEMBER_CODE ORDER BY CHECKUP_DATE DESC) AS rn
    FROM 
        HEALTH_CHECKUP
),
CheckupPairs AS (
    SELECT 
        c1.MEMBER_CODE,
        c1.CHECKUP_DATE AS LATEST_CHECKUP_DATE,
        c1.WEIGHT AS LATEST_WEIGHT,
        c2.CHECKUP_DATE AS PREVIOUS_CHECKUP_DATE,
        c2.WEIGHT AS PREVIOUS_WEIGHT,
        c1.WEIGHT - c2.WEIGHT AS WEIGHT_DIFF
    FROM 
        LatestCheckups c1
    JOIN 
        LatestCheckups c2
    ON 
        c1.MEMBER_CODE = c2.MEMBER_CODE
        AND c1.rn = 1
        AND c2.rn = 2
)
SELECT 
    cp.LATEST_CHECKUP_DATE AS CK_DATE,
    m.MEMBER_CODE AS CODE,
    m.LAST_NAME || m.FIRST_NAME AS NAME,
    CASE 
        WHEN cp.WEIGHT_DIFF = ROUND(cp.WEIGHT_DIFF) THEN CAST(cp.WEIGHT_DIFF AS INTEGER)
        ELSE ROUND(cp.WEIGHT_DIFF, 1)
    END AS CHG_WT
FROM 
    CheckupPairs cp
JOIN 
    MEMBER_MST m
ON 
    cp.MEMBER_CODE = m.MEMBER_CODE
WHERE 
    ABS(cp.WEIGHT_DIFF) >= 5
ORDER BY 
    cp.WEIGHT_DIFF DESC,
    cp.MEMBER_CODE DESC;
提出情報
提出日時2024/06/21 13:11:40
コンテスト第13回 SQLコンテスト
問題体重差分
受験者arabo
状態 (詳細)WA
(Wrong Answer: 誤答)
メモリ使用量100 MB
メッセージ
テストケース(通過数/総数)
0/2
状態
メモリ使用量
データパターン1
WA
96 MB
データパターン2
WA
100 MB