我需要显示有一种以上官方语言或两种以上非官方语言的国家的语言计数。这是我想做的,但不知道如何正确地写它。任何帮助都会很棒。
SELECT
CountryCode,
IsOfficial,
COUNT(Language) as LangCount
FROM countrylanguage
WHERE IsOfficial = 'T'
GROUP BY CountryCode
HAVING COUNT(Language) > 1
OR
WHERE IsOfficial = 'F'
GROUP BY CountryCode
HAVING COUNT(Language) > 2
ORDER BY CountryCode
最佳答案
你只需要把这些条件作为化合物的一部分
SELECT CountryCode,
IsOfficial,
COUNT(Language) as LangCount
FROM countrylanguage
GROUP BY isOfficial, CountryCode
HAVING (COUNT(language) > 1 AND isOfficial = 'T')
OR (COUNT(language) > 2 AND isOfficial = 'F')
不能有多个GROUPBY和having子句,因此要组合条件。
现在,如果一个国家同时拥有这两项记录,这两项记录都将被归还。如果一个国家只有两个标准中的一个,那么只会返回该记录。这就是你想要的吗?(这就是为什么样本数据和预期结果会有帮助。)
关于mysql - 选择语句以获取条件的语言计数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49651468/