ソースコード
WITH RankedCheckups AS (
    SELECT 
        CHECKUP_DATE,
        MEMBER_CODE,
        WEIGHT,
        ROW_NUMBER() OVER (PARTITION BY MEMBER_CODE ORDER BY CHECKUP_DATE DESC) AS rn
    FROM 
        HEALTH_CHECKUP
),
WeightChanges AS (
    SELECT 
        current.CHECKUP_DATE,
        current.MEMBER_CODE,
        current.WEIGHT AS Current_Weight,
        previous.WEIGHT AS Previous_Weight,
        ROUND(current.WEIGHT - previous.WEIGHT, 1) AS Change_Weight
    FROM 
        RankedCheckups current
    JOIN 
        RankedCheckups previous ON current.MEMBER_CODE = previous.MEMBER_CODE AND previous.rn = 2
    WHERE 
        current.rn = 1
)
SELECT 
    CHECKUP_DATE AS CK_DATE,
    MEMBER_CODE AS CODE,
    (SELECT LAST_NAME || FIRST_NAME FROM MEMBER_MST WHERE MEMBER_CODE = w.MEMBER_CODE) AS NAME,
    CASE 
        WHEN Change_Weight = CAST(Change_Weight AS INT) THEN CAST(Change_Weight AS INT)
        ELSE Change_Weight 
    END AS CHG_WT
FROM 
    WeightChanges w
WHERE 
    ABS(w.Change_Weight) >= 5
ORDER BY 
    Change_Weight DESC, 
    MEMBER_CODE DESC;
提出情報
提出日時2024/09/05 15:14:27
コンテスト第13回 SQLコンテスト
問題体重差分
受験者T.M
状態 (詳細)AC
(Accepted: 正答)
メモリ使用量86 MB
メッセージ
テストケース(通過数/総数)
2/2
状態
メモリ使用量
データパターン1
AC
85 MB
データパターン2
AC
86 MB