MySQL Workbench,希望在分组后找到列的最大百分比及其在其他列

时间:2017-10-28 03:22:47

标签: sql syntax mysql-workbench

基本上,我有两个表,一个叫CountryLanguage,另一个叫Country。

Click here to view Image

我尝试了很多不同的事情,但我似乎无法回答我的问题:

两个表都有一个国家代码,用于连接表,每个国家/地区都有自己的名称。这是国家/地区表的图像:

This is the image for the Country Table

CountryLanguage表在每列中都有多种语言,国家代码和使用该语言的人员百分比:

Image for the COuntryLanguage Table

我基本上尝试做的事情(数小时和数小时)列出了每个国家/地区最常用的语言(只需查找该国家/地区使用的每种语言的最大百分比,然后将其链接起来对国家语言的价值)。语法给我带来了很多问题,因为我对MySQL来说比较新。

非常感谢任何帮助。 :d

SELECT CL.Percentage, C.Name, CL.Language
From world169.CountryLanguage as CL join 
world169.Country as C ON (CL.CountryCode = C.Code)

编辑: 感谢Jinesh的回复。还有一个小问题(我之前有过)。我将向您展示我在运行代码时会发生什么情况的前后图片:Before:它显示了每种语言的百分比,因此当您找到最大值(百分比)时,您会得到76.7和语言英语,对吗?但相反,你(Image ***after*** I run your code)得到(正确的)百分比和错误的语言(这是我一次又一次遇到的另一个问题。)

如何将英语列为荷兰语而不是荷兰语? (顺便说一句,谢谢你的帮助,它真的很有用)

1 个答案:

答案 0 :(得分:0)

我们可以尝试这样的事情:

SELECT 
  CL.Percentage,
  (Select C.Name from world169.Country as C where CL.CountryCode = C.Code),
  CL.Language
FROM world169.CountryLanguage as CL
WHERE BALANCE = (SELECT MAX(CL2.Percentage) FROM world169.CountryLanguage as CL2 WHERE CL2.CountryCode = CL.CountryCode )