我学会了How select distinct from composite primary key table:
; with temp as (
select row_number() over (partition by First_PK order by Second_PK desc)
as row_num, First_PK, Second_PK, data
from test)
select * from temp
where row_num = 1
但我现在面临另一个问题,而不是where row_num = 1
我希望where row_num = MAX
(我的意思是最大值)
答案 0 :(得分:1)
由于一个排序顺序中的最后一行将是相反排序顺序中的第一行,您只需将order by
子句更改为在窗口函数row_number
中使用升序:
; with temp as (
select row_number() over (partition by First_PK order by Second_PK)
as row_num, First_PK, Second_PK, data
from test)
select * from temp
where row_num = 1
答案 1 :(得分:0)
解决方案是:
; with temp as (
select row_number() over (partition by First_PK order by Second_PK)
as row_num, First_PK, Second_PK, data
from test)
select * from temp
WHERE row_num=(SELECT max(row_num) FROM temp);