使用子查询查找每个国家/地区最常用的语言-T-SQL

时间:2018-11-10 08:18:01

标签: sql-server tsql subquery

我是SQL的新手,因为我正在学习入门课程。我已经阅读了我的教科书,并在网上找到了尽可能多的资料...

我有一个表[Language],其中包含列Language.Country,Language.Name和Language.Percentage。 这是所有国家/地区,其使用的语言以及说每种语言的发言人所占百分比的列表。

我的任务是使用子查询显示每个国家/地区最常用的语言。

我尝试过的一件事:

SELECT Country, MAX(Percentage) AS Percentage
FROM Language
GROUP BY Country;

哪个确实返回了正确的答案,但是我无法显示与该百分比相对应的语言的名称,也看不到如何使用子查询来获得正确的结果。这让我有点发疯了,tbh。

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

您的子查询应返回相应国家/地区中最常用的语言,即按降序返回第一行顺序。

SELECT
    Country
    , MAX(Percentage) AS Percentage
    , (select top 1 Name from Language i where i.Country = l.Country order by Percentage desc) as MostCommonLanguage
FROM Language l
GROUP BY Country;