我有一个名为animals
的基本表,其中包含两个字段name
和type
。字段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');
答案 0 :(得分:3)
使用GROUP BY
和COUNT
按类型对动物进行计数。
试试这个:
SELECT a.type, COUNT(1) AS Cnt
FROM animals a
GROUP BY a.type;
<强>输出强>
| TYPE | CNT |
|-------|-----|
| dog | 2 |
| cat | 2 |
| horse | 1 |
| zebra | 1 |
| lion | 1 |
答案 1 :(得分:2)
答案 2 :(得分:1)
您可以按类型分组来获取每种动物类型的计数。这是查询相同的内容。
SELECT type
,COUNT(*)FROM animals
GROUP BY type
类型计数(*)