ソースコード
WITH Recent_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
),
Latest_Checkups AS (
    SELECT
        MEMBER_CODE,
        MAX(CASE WHEN rn = 1 THEN CHECKUP_DATE END) AS LATEST_CHECKUP_DATE,
        MAX(CASE WHEN rn = 1 THEN WEIGHT END) AS LATEST_WEIGHT,
        MAX(CASE WHEN rn = 2 THEN CHECKUP_DATE END) AS PREVIOUS_CHECKUP_DATE,
        MAX(CASE WHEN rn = 2 THEN WEIGHT END) AS PREVIOUS_WEIGHT
    FROM
        Recent_Checkups
    WHERE
        rn <= 2
    GROUP BY
        MEMBER_CODE
),
Weight_Change AS (
    SELECT
        l.MEMBER_CODE,
        l.LATEST_CHECKUP_DATE AS CK_DATE,
        m.LAST_NAME || m.FIRST_NAME AS NAME,
        ROUND(l.LATEST_WEIGHT - l.PREVIOUS_WEIGHT, 1) AS CHG_WT
    FROM
        Latest_Checkups l
    JOIN
        MEMBER_MST m ON l.MEMBER_CODE = m.MEMBER_CODE
    WHERE
        ABS(ROUND(l.LATEST_WEIGHT - l.PREVIOUS_WEIGHT, 1)) >= 5
)
SELECT
    CK_DATE,
    MEMBER_CODE AS CODE,
    NAME,
    CASE
        WHEN CHG_WT = CAST(CHG_WT AS INTEGER) THEN CAST(CHG_WT AS INTEGER)
        ELSE CHG_WT
    END AS CHG_WT
FROM
    Weight_Change
ORDER BY
    CHG_WT DESC,
    MEMBER_CODE DESC;
提出情報
提出日時2024/06/21 12:37:41
コンテスト第13回 SQLコンテスト
問題体重差分
受験者MrYugo
状態 (詳細)AC
(Accepted: 正答)
メモリ使用量96 MB
メッセージ
テストケース(通過数/総数)
2/2
状態
メモリ使用量
データパターン1
AC
89 MB
データパターン2
AC
96 MB