我正在尝试使用一个查询来查找患者的第一读和最后读:
REC.inpatient_data_id
,Rec.PAT_ID
,IP_FLT_DATA. Template_ID
, IP_FLT_DATA.Template_Name
, IP_FLT_DATA.Display_Name
,IP_FLO_GP_DATA.FLO_MEAS_NAME
,IP_FLO_GP_DATA.DISP_NAME
,MEAS.FLO_MEAS_ID
,MEAS.MEAS_VALUE
,MEAS.RECORDED_TIME
,MEAS.line
,Min(Recorded_Time) Over(Partition By Rec.Pat_ID Order By Meas.Recorded_TIME) First_Time
,Max(Recorded_TIME) Over(Partition By Rec.Pat_ID Order By Meas.Recorded_TIME) Final_Time
FROM HCCLSC. IP_FLWSHT_REC REC
LEFT OUTER JOIN HCCLSC.IP_FLWSHT_MEAS MEAS ON REC.FSD_ID=MEAS.FSD_ID
LEFT OUTER JOIN HCCLSC.IP_FLO_GP_DATA ON IP_FLO_GP_DATA.FLO_MEAS_ID = MEAS.FLO_MEAS_ID
LEFT OUTER JOIN HCCLSC.IP_FLT_DATA ON IP_FLT_DATA.TEMPLATE_ID = MEAS.FLT_ID
WHERE --IP_FLO_GP_DATA.DISP_NAME like '%disorganized%'
REC.inpatient_data_id=212126860810
and
MEAS.FLO_MEAS_ID in (12436741, 12436742, 12436743, 12436744, 12436745, 12436746)
Min(Recorded_Time)给我所有行的正确答案。
但是,Max(Recorded_Time)只会将Recorded_Time吐给我,有人可以告诉我在这种情况下我做错了什么。
谢谢
答案 0 :(得分:0)
删除Order By Meas.Recorded_TIME
。它通过静默应用RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
来缩小窗口范围。
Min(Recorded_Time) Over(Partition By Rec.Pat_ID) First_Time
,Max(Recorded_TIME) Over(Partition By Rec.Pat_ID) Final_Time