mysql - 从每组涉及两个字段的方程式中选择最高值

标签 mysql

我有一个包含以下字段的国家/地区列表:

  • 旧国民生产总值
  • 新国民生产总值
  • 大陆
  • 姓名

我想显示这样的表格

| 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/

相关文章:

mysql - SQL,将一列分组并计算其属性

php - 循环并显示 php 列中的所有数据库条目

php - MySQL插入数据时自动更新字段

mysql - 如何在MySQL中求和TIME

php - MySQL CONCAT 性能与 PHP 连接性能

mysql - 无法将wordpress项目连接到数据库

mysql - 复合mysql Select After outer join

mysql - 从表 2 中添加表 1 中的值,其中多个列匹配

php - 如果我用一个用户登录,它会用任何密码登录

python - Django - 以 latin1 格式发布数据,解码为 utf-8