ソースコード
/*
会員の健康診断結果を記録している健康診断テーブル(HEALTH_CHECKUP)より、会員毎に実施日(CHECKUP_DATE)が直近2回の健康診断結果で、今回の体重(WEIGHT)から前回の体重を減算した結果が、5kg以上変動した会員を表示しなさい。
体重はkg単位で小数第一位まで登録されているものとする。また、変動した体重を算出する際は丸め誤差が発生しないように注意すること。ただし、小数点以下がゼロの場合は整数のみの表示とする。

表示項目は以下とする。(エイリアスを使用し→の項目名とする)

最新の実施日 → CK_DATE
MEMBER_CODE → CODE
LAST_NAMEとFIRST_NAMEを連結して表示 → NAME
変動した体重 → CHG_WT

表示順

変動した体重の降順
MEMBER_CODEの降順
*/

with
a as (
select
CHECKUP_DATE,
max(CHECKUP_DATE) over (partition by member_code) as ck_max,
MEMBER_CODE,
WEIGHT,
lag(WEIGHT) over (partition by member_code order by CHECKUP_DATE) as wlag
from HEALTH_CHECKUP
)
select
CHECKUP_DATE as CK_DATE,
MEMBER_CODE as CODE,
LAST_NAME || FIRST_NAME as NAME,
round(weight - wlag, 1) as  CHG_WT
from member_mst inner join a using(member_code)
where checkup_date = ck_max and abs(round(weight - wlag, 1)) >= 5
order by 4 desc, 2 desc
提出情報
提出日時2024/06/23 16:53:49
コンテスト第13回 SQLコンテスト
問題体重差分
受験者wxy_zzz
状態 (詳細)AC
(Accepted: 正答)
メモリ使用量90 MB
メッセージ
テストケース(通過数/総数)
2/2
状態
メモリ使用量
データパターン1
AC
90 MB
データパターン2
AC
83 MB