如何只返回日期字段上的最新记录,并将其一分为二

8e2ybdfx  于 2021-07-27  发布在  Java
关注(0)|答案(1)|浏览(296)

情景:一个人在两年的时间里参加了三次b测试。这个人将有三个条目。但是,我需要编写一个查询,告诉我参加测试的人数(只有一个,是最新的测试)。问题是我有一列标签,test\u month(xx)和test\u year(xx)。
我需要的是:我需要能够把最近的考试月份和年份,基本上是他们最近参加的考试拉出来(例如(见下图)我只需要2/20的记录。)
我不知道如何根据test\u month和test\u year这两个单独的列检索每个人上一次参加的测试的记录。

jjhzyzn0

jjhzyzn01#

可以使用窗口函数:

select *
from (
    select 
        t.*, 
        row_number() over(
            partition last_name, firt_name 
            order by test_year desc, test_month desc
        ) rn
    from mytable t
) t
where rn = 1

相关问题