如何按日期获取最新行?

How to get the latest row by date?

我有一个显示如下数据的现有查询:

NAME     COURSE   PROF    LASTUPDATE
NAME_1   MATH1    PROF_A  2015-10-14 09:55:26.637
NAME_2   ENG1     PROF_B  2015-10-14 09:54:07.087
NAME_2   ENG1     PROF_C  2015-10-14 10:02:31.663 
NAME_3   SOC1     PROF_D  2015-10-14 09:53:28.253 
NAME_4   PHL1     PROF_E  2015-10-14 09:55:47.293
NAME_3   SOC1     PROF_F  2015-10-14 09:59:00.000

我只想 select 具有相同名称和课程的最新行(就上次更新而言)?结果 table 应该是这样的:

NAME     COURSE   PROF    LASTUPDATE
NAME_1   MATH1    PROF_A  2015-10-14 09:55:26.637
NAME_2   ENG1     PROF_C  2015-10-14 10:02:31.663  
NAME_4   PHL1     PROF_E  2015-10-14 09:55:47.293
NAME_3   SOC1     PROF_F  2015-10-14 09:59:00.000

提前致谢!

典型的方法是row_number():

select t.*
from (select t.*,
             row_number() over (partition by name, course order by lastupdate desc) as seqnum
      from t
     ) t
where seqnum = 1;

尝试first_value

select
first_value(last_update) over (partition by name_2 order by last_update DESC) as last_update 
from my_table;