查找具有两组最大值的行

时间:2017-10-17 18:22:11

标签: sql sql-server sql-server-2012

我使用SQL Server 2012, 我有一张桌子:
id, name, surname, timestamp, type

type有两个可能的值:12

现在,我想找到两行 - 对于每个组(12)行,具有最大值,特别是type

问题是我想找到namesurname。 我可以用SELECT TOP 1 - WHERE ORDER BY - UNION方法做到这一点,但我想找到另一个更好的主意。 你能救我吗?

1 个答案:

答案 0 :(得分:0)

对于每种类型,这听起来像你想要每行最新。如果是这种情况,可以使用row_number()

with cte as(
select
    id
    ,name
    ,surname
    ,timestamp
    ,type
    RN = row_number() over (partition by id,type order by timestamp desc))

select *
from cte
where RN = 1