考虑下表:
ID GroupId Rank
1 1 1
2 1 2
3 1 1
4 2 10
5 2 1
6 3 1
7 4 5
我需要一个 sql(对于 MS-SQL)选择查询,为每个排名最低的组选择一个 Id。每个组只需要返回一个 ID,即使有两个具有相同等级(如上表中的 1 和 2)。我试图选择最小值,但要求只返回一个,并且要返回的值是 ID 列,这让我很困惑。
有人知道怎么做吗?
最佳答案
使用row_number()
:
select t.*
from (select t.*,
row_number() over (partition by groupid order by rank) as seqnum
from t
) t
where seqnum = 1;
关于sql - 为具有最低值的每个组选择单个 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56166830/