【问题标题】:Count items in table, table field enum type involved统计表中的项目,涉及的表字段枚举类型
【发布时间】:2014-01-29 02:16:03
【问题描述】:

我有一个名为animals 的基本表,其中包含两个字段nametype。字段type 是一个具有以下值的枚举字段:enum('dog','cat','horse','zebra','lion')。我正在尝试运行查询并计算每个物种的数量以及指定该物种的名称。例如,预期结果将显示类似 dog=2, cat=2, etc. 的内容。在下面的查询中,我可以计算animals 的总数,但不能分解为物种和名称的数量。我怎么能这样做? SQLFIDDLE

查询:

select COUNT(type) from animals

表架构:

CREATE TABLE animals 
(
 name varchar(20),      
 type enum('dog','cat','horse','zebra','lion') 
 );

INSERT INTO animals
(name, type)
VALUES
('Bertha', 'horse'),
('Louis', 'cat'),
('Gina', 'cat'),
('Rafa', 'lion'),
('lilo', 'dog'),
('kilo', 'dog'),
('stripy', 'zebra');

【问题讨论】:

    标签: mysql sql select count group-by


    【解决方案1】:

    使用GROUP BYCOUNT 按类型计算动物数量。

    试试这个:

    SELECT a.type, COUNT(1) AS Cnt
    FROM animals a 
    GROUP BY a.type;
    

    查看SQL FIDDLE DEMO

    输出

    |  TYPE | CNT |
    |-------|-----|
    |   dog |   2 |
    |   cat |   2 |
    | horse |   1 |
    | zebra |   1 |
    |  lion |   1 |
    

    【讨论】:

      【解决方案2】:

      你是说

      select type, COUNT(*) from animals
      group by type
      

      SqlFiddle

      【讨论】:

        【解决方案3】:

        您可以使用按类型分组来获取每种动物类型的计数。这是相同的查询。

        SELECT type,COUNT(*) FROM 动物 分组type

        类型计数(*)


        狗 2 猫 2 马 1 斑马 1 狮子 1

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2021-12-22
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-01-14
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多