Elemente in Tabelle zählen, Tabellenfeld-Enum-Typ beteiligt

Ich habe eine einfache Tabelle namens animals mit zwei Feldern name und type . Der Feldtyp ist ein Enum-Feld mit folgenden Werten: enum('dog','cat','horse','zebra','lion') . Ich versuche eine Abfrage durchzuführen und die Anzahl jeder Spezies zu zählen sowie den Namen dieser Spezies anzugeben. Zum Beispiel zeigt ein erwartetes Ergebnis etwas wie diesen dog=2, cat=2, etc. . In der unten stehenden Abfrage kann ich die Gesamtzahl der animals aber nicht in die Anzahl der Arten und Namen aufschlüsseln. Wie könnte ich das tun? SQLFIDDLE

Abfrage:

 select COUNT(type) from animals 

Tabellenschema:

 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'); 

Solutions Collecting From Web of "Elemente in Tabelle zählen, Tabellenfeld-Enum-Typ beteiligt"

Verwenden Sie GROUP BY und COUNT zum Zählen von Tieren nach Typ.

Versuche dies:

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

Überprüfen Sie diese SQL-FIDDLE-DEMO

AUSGABE

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

Meinst du

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

SQLFiddle

Sie können Gruppen nach Typ verwenden, um die Anzahl der einzelnen Tierarten zu ermitteln. Hier ist die Abfrage für dieselbe.

SELECT- type , COUNT (*) FROM Tiere GROUP BY- type

Typenzahl (*)


Hund 2 Katze 2 Pferd 1 Zebra 1 Löwe 1