2014-01-10 70 views
4

我有一個基本表名爲animals與兩個字段nametype。字段type是具有以下值的枚舉字段:enum('dog','cat','horse','zebra','lion')。我試圖運行查詢並計算每個物種的數量以及指定該物種的名稱。例如,一個預期的結果將顯示像這樣的dog=2, cat=2, etc.。在下面的查詢中,我能夠計算總數爲animals,但不能分解成物種和名稱的數量。我怎麼能這樣做? SQLFIDDLE計數表中的項目,表字段enum類型涉及

查詢:

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

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

1

您可以按類型使用組來獲取每種動物類型的數量。以下是相同的查詢。

SELECT type,COUNT(*)FROM動物 GROUP BY type

型COUNT(*)


狗2 貓2 馬1 斑馬1 獅1