我使用SQL Server 2012,
我有一张桌子:
id, name, surname, timestamp, type
type
有两个可能的值:1
和2
。
现在,我想找到两行 - 对于每个组(1
和2
)行,具有最大值,特别是type
。
问题是我想找到name
和surname
。
我可以用SELECT TOP 1 - WHERE ORDER BY - UNION
方法做到这一点,但我想找到另一个更好的主意。
你能救我吗?
答案 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