sql - 为具有最低值的每个组选择单个 ID
Posted
技术标签:
【中文标题】sql - 为具有最低值的每个组选择单个 ID【英文标题】:sql - select single ID for each group with the lowest value 【发布时间】:2019-10-03 15:07:21 【问题描述】:考虑下表:
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 列的要求是抛出我。
有人知道怎么做吗?
【问题讨论】:
【参考方案1】:使用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的主要内容,如果未能解决你的问题,请参考以下文章