mysql count count distinct with examples
Erfahren Sie anhand von Beispielen mehr über die Verwendung verschiedener Formen der MySQL COUNT-Funktion:
COUNT ist eine einfache Aggregatfunktion, die jedoch sehr effektiv und weit verbreitet ist. In sehr einfachen Worten wird es verwendet, um die Anzahl der Zeilen anhand einer bestimmten SELECT-Abfrage und -Kriterien zu zählen.
In diesem Tutorial werden die Syntax und Verwendung von einfachem COUNT, COUNT mit Bedingungen, COUNT mit DISTINCT, COUNT mit GROUP BY usw. erläutert.
Was du lernen wirst:
Verschiedene Arten von MySQL COUNT
Art | Beschreibung | Syntax |
---|---|---|
ANZAHL(*) | Die Funktion COUNT (*) gibt die Nr. Zurück. Anzahl der von der SELECT-Anweisung abgerufenen Zeilen, einschließlich Zeilen mit NULL- und Duplicate-Werten | SELECT COUNT (*) FROM {tableName} |
COUNT (Ausdruck) | COUNT (Ausdruck) würde den Wert zählen, bei dem der Ausdruck nicht null ist. Ausdruck kann etwas Einfaches wie ein Spaltenname oder ein komplexer Ausdruck wie IF-Funktion sein. | SELECT COUNT (Ausdruck) aus {tableName} |
COUNT (DISTINCT-Ausdruck) | COUNT (DISTINCT-Ausdruck) - Das Schlüsselwort DISTINCT würde dazu führen, dass nur eindeutige Werte ungleich Null für den Ausdruck gezählt werden. Zum Beispiel - COUNT (DISTINCT customerName) - würde nur Zeilen mit unterschiedlichen Werten für den Kundennamen zählen | SELECT COUNT (DISTINCT-Ausdruck) aus {tableName} |
Beispiele für MySQL COUNT
Testdaten
Wir würden die folgenden Tabellen und Daten für die Beispiele für die MySQL COUNT-Funktion verwenden.
Tabellen:
# 1) Produktdetails
Speichert Details verschiedener Produkte in einem Geschäft
- product_id - INT
- Produktname - VARCHAR
- Preis - DEZIMAL
- category_id - INT (FOREIGN KEY - ID aus der Category_Details-Tabelle)
# 2) Category_Details:
- category_id: INT
- Kategoriename: VARCHAR
Erstellen Sie die Tabellen und fügen Sie Dummy-Daten mithilfe der folgenden Abfragen ein:
CREATE TABLE `product_details` ( `product_id` int NOT NULL, `product_name` varchar(100), `price` decimal(5,2), `category_id` int, FOREIGN KEY (category_id) REFERENCES category_details(category_id), PRIMARY KEY(product_id) ) CREATE TABLE `category_details` ( `category_id` int NOT NULL, `category_name` varchar(100), PRIMARY KEY(category_id) ) INSERT INTO `category_details` (`category_id`,`category_name`) VALUES (1,'FMCG'),(2,'FURNITURE'),(3,'FASHION'),(4,'APPLIANCES'),(5,'ELECTRONICS'); INSERT INTO `product_details` (`product_id`,`product_name`,`price`,`category_id`) VALUES (1,'Biscuits',0.5,1),(2,'Chocolates',1,1), (3, 'Washing Powder',5,1),(4, 'Apple IPhone', 500,5), (5, 'Batteries',2,5),(6,'Floor cleaner',2.5,1),(7,'Jeans- Levis',100,1),(8,'Mixer grinder',50,4),(9,'Capsicum',2,1),(10,'Sugar',1,1),(11,'Study Table',50,2);
Bitte beziehen Sie sich auf die Bilder der Tabellen mit den oben erstellten Testdaten.
Product_Details-Tabelle
Category_Details-Tabelle
Einfache Zählung
In diesem Abschnitt sehen wir die COUNT-Funktion auf einfachste Weise.
Wir werden COUNT verwenden, um die Anzahl der Zeilen ohne NULL- oder DISTINCT-Prüfungen zurückzugeben.
SELECT COUNT(*) FROM product_details;
Ausgabe:
ANZAHL(*) |
---|
elf |
Mit der obigen Abfrage erhalten wir nur die Anzahl der Zeilen, die für die select-Anweisung zurückgegeben werden.
Was ist der beste Musik-Downloader für Android
COUNT Mit Bedingungen
Jetzt verwenden wir die COUNT-Funktion mit Bedingungen oder Spaltenwerten.
Beispiel: Angenommen, wir möchten die Nr. Zählen. von Zeilen, in denen es keine Nicht-Null-Werte für Produktnamen gibt.
Wir können product_name (oder einen beliebigen Spaltennamen) als Ausdruck in der COUNT-Funktion hinzufügen, was dann zu einer Anzahl von Zeilen mit NON NULL product_name-Zeilen führen würde.
SELECT COUNT(product_name) FROM product_details;
In diesem Fall ist die Ausgabe 11 (da alle Testdaten bereits Werte für die Spalte Produktname enthalten).
Ausgabe:
COUNT (Produktname) |
---|
elf |
Fügen wir eine neue Zeile mit einem NULL-Wert für product_name hinzu.
INSERT INTO `product_details` (`product_id`,`product_name`,`price`,`category_id`) VALUES (12,NULL,0.5,1);
SELECT COUNT(product_name) from product_details;
Die obige COUNT-Abfrage gibt die Anzahl aller Zeilen mit dem Produktnamen NON NULL zurück.
Da wir eine Zeile mit NULL product_name eingefügt haben, wird dies in den Ergebnissen nicht zurückgegeben. Die Ausgabe wäre also immer noch 11 Zeilen.
Ausgabe:
COUNT (Produktname) |
---|
elf |
COUNT Mit DISTINCT
In den vorherigen Beispielen haben wir die COUNT-Funktion mit einem Ausdruck verwendet. Wir können den Ausdruck auch mit einem DISTINCT-Befehl kombinieren, um alle NON NULL-Werte zu erhalten, die ebenfalls EINZIGARTIG sind.
Versuchen wir, die DISTINCT category_id aus der Tabelle product_details abzurufen.
SELECT COUNT(DISTINCT category_id) from product_details;
Ausgabe:
COUNT (DISTINCT category_id) |
---|
4 |
Wie Sie oben sehen können, ist die Ausgabe 4, was die Gesamtzahl darstellt. von category_id’s in der Tabelle product_details.
COUNT Mit GROUP BY
Schauen wir uns ein Beispiel an, in dem wir COUNT zusammen mit GROUP BY verwenden möchten. Dies ist eine wichtige Kombination, bei der wir einen COUNT für eine gruppierte Spalte erhalten und Daten in Abhängigkeit von verschiedenen Werten einer gruppierten Zielspalte analysieren können.
Zum Beispiel: Finden Sie die Nr. von Produkten für jede Kategorie aus der Tabelle product_details.
SELECT category_id, COUNT(*) FROM product_details GROUP BY category_id;
Kategorie ID | ANZAHL(*) |
---|---|
1 | 7 |
zwei | 1 |
4 | 1 |
5 | zwei |
Wie wir oben sehen können, repräsentiert die Spalte COUNT (*) für jede Kategorie-ID die Anzahl der Zeilen, die zu jeder Kategorie-ID gehören.
COUNT Mit IF
Sehen wir uns ein Beispiel für die Verwendung einer IF-Bedingung in der COUNT-Funktion an. Wir können einen IF-Ausdruck in die COUNT-Funktion einfügen und den Wert für eine falsche Bedingung auf NULL und für die wahre Bedingung auf einen Wert ungleich Null setzen.
Jeder NON NULL-Wert würde als einzelne Zeile mit COUNT-Funktion gezählt.
Zum Beispiel: Verwenden Sie die COUNT-Funktion, um alle Produkte innerhalb der Preisspanne von 20 $ zu finden.
SELECT COUNT(IF(price >0 AND price<20, 1, NULL)) AS count_less_than_20 FROM product_details;
Ausgabe:
count_less_than_20 |
---|
7 |
In der obigen Abfrage haben wir den COUNT aller Produkte erhalten, deren Preisspanne zwischen 0 und 20 liegt. Für die FALSE-Bedingung haben wir den Wert auf NULL gesetzt, der nicht gezählt wird, wenn die Zeile für verschiedene Spaltenwerte ausgewertet wird .
ZÄHLEN SIE MIT
COUNT kann auch mit JOIN-Anweisungen verwendet werden. Da COUNT gilt für Nr. von Zeilen kann es mit einer beliebigen Kombination einer Abfrage verwendet werden, die mit JOINS für eine einzelne Tabelle oder mehrere Tabellen ausgeführt wird.
Beispiel: Verbinden Sie sowohl die Tabelle product_details als auch die Tabelle category_details und suchen Sie die Anzahl nach category_name in der Tabelle product_details.
SELECT category_name, COUNT(category_name) from product_details pd INNER JOIN category_details cd ON cd.category_id = pd.category_id GROUP BY category_name;
Ausgabe:
Kategoriename | COUNT (Kategoriename) |
---|---|
FMCG | 7 |
MÖBEL | 1 |
HAUSHALTSGERÄTE | 1 |
ELEKTRONIK | zwei |
Tipp & Trick
Verwenden des Spaltenalias für die Spalte, in der das Ergebnis der COUNT-Funktion angezeigt wird: Wir können einen Spaltenalias zusammen mit der COUNT-Funktion verwenden, um benutzerdefinierte Spaltennamen für die Spalte zu haben, in der die Ergebnisse der COUNT-Funktion angezeigt werden.
Zum Beispiel: Angenommen, wir möchten die Anzahl der Kategorien in der Tabelle category_details zählen und die resultierende Spalte als category_count benennen. Wir können die folgende Abfrage verwenden:
SELECT COUNT(*) as category_count from category_details;
Ausgabe:
category_count |
---|
5 |
Häufig gestellte Fragen
F # 1) Wie verwende ich die COUNT-Funktion in MySQL?
Antworten: Die COUNT-Funktion ist eine Aggregatfunktion, die auf drei Arten verwendet werden kann.
- ANZAHL(*) - Dies würde alle von der SELECT QUERY zurückgegebenen Zeilen zählen.
- COUNT (Ausdruck) - Dies würde alle NON NULL-Werte für den Ausdruck zählen.
- COUNT (DISTINCT-Ausdruck) - Dies würde alle NON NULL- und UNIQUE-Werte für den Ausdruck zählen.
F # 2) Was ist der Unterschied zwischen Count (*) und Count (1) in SQL?
Antworten: Beide Aussagen verhalten sich identisch. Nach der MySQL-Definition von COUNT ist alles in Klammern () ein Ausdruck - und jeder NON NULL-Wert wird als 1 gezählt.
In diesem Fall werden sowohl * als auch 1 als NON NULL behandelt und das gleiche Ergebnis wird zurückgegeben, d. H. Das Ergebnis der beiden folgenden Abfragen wäre das gleiche.
SELECT COUNT(*) from product_details; SELECT COUNT(1) from product_details;
Fazit
In diesem Tutorial haben wir die COUNT-Funktion und die verschiedenen von MySQL bereitgestellten Variationen kennengelernt.
Wir haben auch gesehen, wie wir COUNT mit verschiedenen Szenarien verwenden können, z. B. mit COUNT mit GROUP BY kombinieren und eine IF-Funktion innerhalb der COUNT-Funktion schreiben.
Die COUNT-Funktion ist eine der wichtigsten und am häufigsten verwendeten Funktionen in MySQL und wird hauptsächlich zum Aggregieren von Daten in Abhängigkeit von den angegebenen Bedingungen für eine oder mehrere Tabellen verwendet.
Literatur-Empfehlungen
- MySQL ALTER TABLE - Hinzufügen einer Spalte zu einer Tabelle in MySQL
- MySQL CONCAT- und GROUP_CONCAT-Funktionen mit Beispielen
- MySQL CREATE USER: So erstellen Sie einen neuen Benutzer in MySQL
- MySQL JOIN Tutorial: Inner, Außen, Kreuz, Links, Rechts und Selbst
- MySQL LIKE - Tutorial mit Syntax- und Verwendungsbeispielen
- MySQL GROUP BY-Klausel - Tutorial mit Beispielen
- MySQL-Teilstring- und Teilstring_Index-Funktionen mit Beispielen
- MySQL Create View Tutorial mit Codebeispielen