MySQL基于多个计数的选择

标签 mysql

如何根据多个计数列出表格中的特定项目?

表国家语言表的形式为

CountryCode,       Language,    IsOfficial,    Percentage**
ABW                Dutch        T              5.3
AFG                Balochi      F              0.9
AFG                Dari         T              32.1

到目前为止我已经给出了这段代码,但这并没有给我正确的输出

select countrycode,  Language, IsOfficial, count(*)

from 

 countrylanguage

 group by countrycode

示例输出如下:

示例输出

示例:“Aimara”是玻利维亚和秘鲁的官方语言,智利也使用该语言,但不作为官方语言。所以查询应该返回记录:

Aimara Bolivia T
Aimara Chile   F
Aimara Peru    T

但例如“南非荷兰语”不应返回,因为它在两个国家(纳米比亚和南非)使用,但仅在一个国家/地区为官方语言。

对于在多个国家/地区作为官方语言的每种语言,如何列出使用该语言的每个国家/地区的名称(表明该语言在该国家/地区是否为官方语言)?

最佳答案

您可以使用带有having和in子句的子查询

select countrycode,  Language, IsOfficial
   where language in  
    (select  Language
    from countrylanguage
    where IsOfficial = 'T'
    having count(*)>1
    group Language ) 

order by language;

关于MySQL基于多个计数的选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37307141/

相关文章:

sql - 在 MySQL : How to pass a table name as stored procedure and/or function argument?

MYSQL 查询连接表

mysql - 根据存储在单独表中的信息选择行

php - 无法创建更好的数据库结构

mysql - 在mysql中使用union删除?

php - 如何避免 mysql 查询中出现很多 OR 语句?

MySQL LOAD DATA INFILE 将行截断为 256 个字符

php - 如何在php中显示来自特定mysql数据库的所有表名

php - 我的行的堆栈值而不是多个

php - 无法从 Doctrine 命令 "orm:schema-tool:create"创建数据库