[英]How select * 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
(我的意思是最大值)
由于一个排序顺序的最后一行将是相反排序顺序的第一行,因此您只需在窗口函数row_number
更改order by
子句以使用升序:
; 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
解决方案是:
; 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);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.