Найти последнее время в серии - PullRequest
1 голос
/ 02 июля 2019

У меня есть запрос, который я пытаюсь использовать, чтобы найти первое и последнее чтение пациента:

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) дает мне правильный ответ для всех строк.
Однако Макс (Recorded_Time) просто выплевывает мне Recorded_Time, Может кто-нибудь сказать мне, что я делаю неправильно в этом случае.

Спасибо,

1 Ответ

0 голосов
/ 02 июля 2019

Удалить 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...