计算表中的项目,涉及的表字段枚举类型

时间:2014-01-10 07:45:07

标签: mysql sql select count group-by

我有一个名为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');

3 个答案:

答案 0 :(得分:3)

使用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 |

答案 1 :(得分:2)

你的意思是

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

SqlFiddle

答案 2 :(得分:1)

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

SELECT type,COUNT(*)FROM animals  GROUP BY type

类型计数(*)


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