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