sql - 根据组 SQL 中的最小值查找值
问题描述
我想在一组排名中找到最年轻的人的名字。一切都在 Person 表中,字段为 PName(various)、PAge(various)、PRanking(0-3)。我希望找到每个排名组(0-3)中最年轻的人的名字。因此,如果每个组中有一个人有排名,查询将返回 4 个名字(每个排名中最年轻的人)。
到目前为止,我的方法是:
SELECT PName
FROM Person
WHERE PAge = MIN(PAge)
GROUPBY PRanking
解决方案
您可以加入最小年龄的子选择
select P.PName from Person P
inner join (
SELECT ranking, min(age) min_age
FROM Person
GROUP BY PRanking
) t on t.ranking = p.ranking and t.min_age = p.age
推荐阅读
- elasticsearch - 跨多个索引/过滤器的查询的function_score未按预期工作
- c# - relaxed Security AppiumService
- c - OpenMP 中的 threadprivate 错误
- php - FPDF 正确打印 NumberFormatter 类给出的货币符号
- c# - Json.net反序列化具有接口属性的复杂类
- chatbot - 聊天机器人的业务验证
- java - 除非明确指定,否则如何在默认情况下将 Spring Data JPA 从 camelCase 命名为 snake_case?
- jquery - 将边框的宽度设置为与文本宽度相同
- opencl - Do I need more events when timing multiple work-items?
- javascript - Cordova 文件插件 - 使用覆盖复制/移动目录(递归)