Sql server 与group by中的聚合匹配的T-SQL get列

Sql server 与group by中的聚合匹配的T-SQL get列,sql-server,tsql,group-by,Sql Server,Tsql,Group By,我做了一个非常简单的样品 我有一张有名字、年龄和体重的桌子。我想检索每个年龄段中最轻的人的名字 我按年龄对人进行分组,这样我可以在每个不同年龄检索最轻的人的体重,但如何检索与最小聚合匹配的姓名?以下查询将返回姓名、年龄和最小体重: 选择P.*从人员P加入选择 年龄 最小重量最轻 从…起 人 按年龄T分组,p.age=T.age和p.weight=T.light使用分区: Select * from ( Select * , min(weight) over (partitio

我做了一个非常简单的样品

我有一张有名字、年龄和体重的桌子。我想检索每个年龄段中最轻的人的名字


我按年龄对人进行分组,这样我可以在每个不同年龄检索最轻的人的体重,但如何检索与最小聚合匹配的姓名?

以下查询将返回姓名、年龄和最小体重:

选择P.*从人员P加入选择 年龄 最小重量最轻 从…起 人 按年龄T分组,p.age=T.age和p.weight=T.light使用分区:

Select * from (
    Select *
    , min(weight) over (partition by age) as MinWeight 
    from People) a
where Weight = MinWeight
或:

请注意,如果存在联系,则两种情况下每个年龄段都会返回多人

Select * from people a
where weight = (select min(weight) from people b where a.age = b.age)