我有一个包含以下字段的国家/地区列表:
- 旧国民生产总值
- 新国民生产总值
- 大陆
- 姓名
我想显示这样的表格
| Continent | GNP Increase | Country Name
| Europe | 60 | United Kingdom
| Asia | 54 | United Emerates
....
每个大陆只显示一个国家/地区,该国家/地区的国民生产总值增长最高。
我正在使用以下方法计算 GNP 增加:(((GNP/GNPOld)/GNP) * 100)
,我有以下 mysql 但是它没有得到正确的国家(它得到了每个大陆最高的 GNP 增长)
Select a.Continent,
Max(((a.GNP - a.GNPOld) / a.GNP) * 100),
b.Name
From Country as a
Join Country as b on (((a.GNP - a.GNPOld) / a.GNP) * 100) = (((b.GNP - b.GNPOld) / b.GNP) * 100)
Group By Continent;
因此它会选择该大陆的最高 GNP 增长,然后尝试将来自同一大陆的具有相同 GNP 增长(使用上述公式计算)的国家附加到该大陆。
最佳答案
您可以使用子查询
和加入
select
a.Continent,
b.GNP_Increase,
a.Name
from Country as a
join (
select
Continent,
max(((a.GNP - a.GNPOld) / a.GNP) * 100) GNP_Increase
from Country
GROUP BY Continent
) b
on (((a.GNP - a.GNPOld) / a.GNP) * 100) = b.GNP_Increase and
a.Continent = b.Continent
关于mysql - 从每组涉及两个字段的方程式中选择最高值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34291014/