Sql按日期获取表中的最新行-双击与按顺序

Sql按日期获取表中的最新行-双击与按顺序,sql,database,amazon-aurora,Sql,Database,Amazon Aurora,有一个查询,该查询使用double select(使用select max)获取多行中具有最新“calculation\u time”列的行,这些行可以具有相同的“patient\u set\u id”。如果有多行具有相同的“患者设置id”,则只应检索具有最新“计算时间”的行。计算时间是一个日期。 到目前为止,我已经试过了,但我不确定是否有更好的方法,也许可以使用ORDER BY。但我对sql非常陌生,需要知道哪一种最快、最合适 SELECT median from diagnostic_ris

有一个查询,该查询使用double select(使用select max)获取多行中具有最新“calculation\u time”列的行,这些行可以具有相同的“patient\u set\u id”。如果有多行具有相同的“患者设置id”,则只应检索具有最新“计算时间”的行。计算时间是一个日期。 到目前为止,我已经试过了,但我不确定是否有更好的方法,也许可以使用ORDER BY。但我对sql非常陌生,需要知道哪一种最快、最合适

SELECT median from diagnostic_risk_stats WHERE 
      calculation_time=(SELECT MAX(calculation_time) FROM diagnostic_risk_stats WHERE 
      patient_set_id = UNHEX(REPLACE('5a9dbfca-74d6-471a-af27-31beb4b53bb2', "-","")));

您可以使用
不存在
,如下所示:

SELECT median 
 from diagnostic_risk_stats t
 WHERE not exists
       (Select 1 from diagnostic_risk_stats tt
         Where t.patient_set_id = tt.patient_set_id
           And tt.calculation_time > t.calculation_time)
  And t.patient_set_id = UNHEX(REPLACE('5a9dbfca-74d6-471a-af27-31beb4b53bb2', "-",""));