sql - 当一组中可以有多个最大值时如何找到所有组中的最大值
问题描述
问题:说出每个种族中最强大的英雄。
桌子:
Hero Race Power
a-bomb human 7000
amazo human 7000
ajax cyborg 5000
mephis cyborg 5600
ammo human 1000
ardina alien 2000
jagua alien 200
myntria alien 2300
hyspace alien 2300
...
...
...
等等。
现在对于这个数据,对于“人类”种族,我们有 a-bomb 和 amazo 两者都具有最高的权力。所以我的输出应该包括他们的名字。
我的预期输出:
Race Hero
human a-bomb
human amazo
cyborg memphis
alien myntria
alien hyspace
请帮忙。
我尝试按种族分组并选择最大值,但是当同一种族有多个最大值时,这只会给出一个最大值。
SELECT race,hero, max(Power)
FROM heroes_info
GROUP BY race;
我的预期输出:
Race Hero
human a-bomb
human amazo
cyborg memphis
alien myntria
alien hyspace
我的实际输出:
Race Hero
human a-bomb
cyborg memphis
alien myntria
解决方案
你可以试试下面 -
SELECT race,hero, Power
FROM heroes_info a
where power in (select max(pawer) from heroes_info a1 where a.race=a1.race)
推荐阅读
- python - 我的一个对象没有像我所有其他对象一样旋转
- python - Python3 Numpy 乘法:无法与形状一起广播 (10, 10000) (10000, 10)
- react-native - 如何显示带有底部标签和侧抽屉的顶部栏按钮
- javascript - 使 js 文件无法通过 Web 控制台访问
- scala - 我在 Scala 规范中找不到带有方法参数的隐式转换特殊模式
- typescript - 如何从 typescript 组件访问 Vue 原型属性
- php - 在 SobiPro 上保存新项目时的空白 ID
- c - 当函数/宏之一在代码中时,Keil 会创建“错误”十六进制文件
- laravel - Lumen API 上传文件在 Postman 上工作,在 Android Multipart 上找不到
- python - Elmo 是词嵌入还是句子嵌入?