我需要显示拥有超过一种官方语言或超过 2 种非官方语言的国家/地区语言计数。这是我想做的,但不知道如何正确编写。任何帮助都会很棒。
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')
您不能有多个 group by 和 having 子句,因此您可以组合条件。
现在如果一个国家同时拥有这两个记录,那么这两个记录都将被返回。如果一个国家只有两个标准之一,则只会返回该记录。这是你想要的吗? (这就是示例数据和预期结果有帮助的原因。)
关于mysql - 选择语句以检索带条件的语言计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49651468/