ソースコード
WITH LATEST_CHECKUPS AS (
    SELECT 
        MEMBER_CODE,
        CHECKUP_DATE,
        WEIGHT,
        ROW_NUMBER() OVER (PARTITION BY MEMBER_CODE ORDER BY CHECKUP_DATE DESC) AS RN
    FROM 
        HEALTH_CHECKUP
),
CHECKUP_COMPARISON AS (
    SELECT 
        c1.MEMBER_CODE,
        c1.CHECKUP_DATE AS CK_DATE,
        c1.WEIGHT AS CURRENT_WEIGHT,
        c2.WEIGHT AS PREVIOUS_WEIGHT,
        ROUND(c1.WEIGHT - c2.WEIGHT, 1) AS CHG_WT
    FROM 
        LATEST_CHECKUPS c1
    JOIN 
        LATEST_CHECKUPS c2 ON c1.MEMBER_CODE = c2.MEMBER_CODE AND c1.RN = 1 AND c2.RN = 2
    WHERE 
        ABS(ROUND(c1.WEIGHT - c2.WEIGHT, 1)) >= 5
),
MEMBER_DETAILS AS (
    SELECT 
        M.MEMBER_CODE AS CODE,
        M.LAST_NAME || M.FIRST_NAME AS NAME,
        C.CK_DATE,
        CASE 
            WHEN ABS(C.CHG_WT - ROUND(C.CHG_WT, 0)) < 0.05 THEN CAST(ROUND(C.CHG_WT, 0) AS INTEGER)
            ELSE C.CHG_WT
        END AS CHG_WT
    FROM 
        MEMBER_MST M
    JOIN 
        CHECKUP_COMPARISON C ON M.MEMBER_CODE = C.MEMBER_CODE
)
SELECT 
    CK_DATE,
    CODE,
    NAME,
    CHG_WT
FROM 
    MEMBER_DETAILS
ORDER BY 
    CHG_WT DESC,
    CODE DESC;
提出情報
提出日時2024/06/21 12:32:17
コンテスト第13回 SQLコンテスト
問題体重差分
受験者koro3bb
状態 (詳細)AC
(Accepted: 正答)
メモリ使用量97 MB
メッセージ
テストケース(通過数/総数)
2/2
状態
メモリ使用量
データパターン1
AC
95 MB
データパターン2
AC
97 MB