如何获取最新数据?

时间:2017-09-13 21:00:43

标签: sql sql-server greatest-n-per-group

我有一个包含三个数据的表,FacilityName,DateLastVerified,&强度。我希望能够使用最新的DateLastVerified来提取记录。当DateLastVerified相同时,我希望它选择具有最高强度的记录。

|FacilityName                                   | DateLastVerified | Intensity
|Nemours/Alfred I. duPont Hospital for Children | 2014-03-01       | 16
|Boston Children's Hospital                     | 2015-11-29       | 6
|Boston Children's Hospital                     | 2017-04-01       | 3
|Tufts Medical Center                           | 2017-04-01       | 3
|Tufts Medical Center                           | 2017-04-01       | 6

因此,对于上表,我想要返回波士顿儿童医院的第二个条目和塔夫茨医疗中心的第二个条目。我怎么写这个?

1 个答案:

答案 0 :(得分:1)

  

我希望能够提取最新的记录   DateLastVerified。当DateLastVerified相同时,我想要   选择具有最高强度的记录。

根据此说明,您可以使用order byfetch first 1 row only获取一条记录:

select t.*
from t
order by DateLastVerified desc, Intensity desc
offset 0 row fetch first 1 row only;

或者对于SQL Server:

select top 1 t.*
from t
order by DateLastVerified desc, Intensity desc;