mysql - 我如何 "tell"MySQL 返回每个类别的最大值以及与该最大值相关的其他值?

标签 mysql database max

Here I have my table called "Pais"(Country in Spanish), Id_Pais is the Primary Key and Continente_FK(Continente stands for Continent) is a foreign key that relates each country to a continent, below you can see my data

我想做的是一个表格,按洲显示一个国家/地区的最大扩展名以及具有最大扩展名的国家/地区的名称,我已经使用这些代码完成了第一部分:

SELECT MAX(Extension) FROM Pais GROUP BY Continente_FK;

该代码显示了与每个大陆相关的最大扩展名,我尝试了其他代码,但它只显示了所有国家/地区的最大扩展名,而不是每个大陆的最大扩展名(所有国家中的最大扩展名):

SELECT C.Id_Continente, P.Nombre, P.Extension,C.Nombre
FROM Pais P RIGHT OUTER JOIN Continente C ON C.Id_Continente=P.Continente_FK 
WHERE P.Extension=(SELECT MAX(Extension) FROM Pais)
GROUP BY C.Id_Continente;

“Nombre”的意思是“名字”

我真的不知道如何告诉MySQL“给出”与最大扩展名关联的名称,请帮忙。

谢谢!

最佳答案

子查询中缺少一个条件:

SELECT C.Id_Continente, P.Nombre, P.Extension,C.Nombre
FROM Pais P RIGHT OUTER JOIN Continente C 
ON C.Id_Continente=P.Continente_FK 
WHERE P.Extension=(SELECT MAX(Extension) FROM Pais P2
                   WHERE P2.Continente_FK = C.Id_Continente)
GROUP BY C.Id_Continente;

我看到的唯一问题是,如果您有来自同一大陆的两个国家/地区具有相同的扩展名(这不太可能)。每个大陆您始终会得到一个结果。

关于mysql - 我如何 "tell"MySQL 返回每个类别的最大值以及与该最大值相关的其他值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36462932/

相关文章:

mysql - mysql/phpmyadmin 中的关系是否必要

mysql - 社交网站所需的数据库模式帮助

python - 如何从 Python 中的行和列中查找最小值/最大值?

SQL - 其中日期 = 最大日期

mysql - 过滤MySQL查询结果集以在特定时间段内产生多次出现

MySQL - 如何在使用多个过滤器查询时保持可接受的响应时间(我应该使用 Redis 吗?)

mysql - 如何在 Flask SQLAlchemy 中使用第 4 个表中的键查询 4 ​​个表?

php - 将数组值插入数据库

python - 如何绘制不同日期最大值的直方图?

Java PreparedStatement 检索最后插入的 ID