Die COUNT IF-Methode in MySQL
In diesem Tutorial möchten wir untersuchen, wie die Methode COUNT IF
in MySQL verwendet wird.
Die Methode COUNT()
in MySQL gibt als Ausgabe die Gesamtzahl der Zeilen in der Tabelle aus. Aber in diesem Artikel sind wir daran interessiert zu verstehen, wie wir Informationen basierend auf einer bestimmten IF
-Bedingung aus unseren Daten zählen können.
Der IF
-Befehl gibt uns die Gesamtzahl der unterschiedlichen Nicht-Null-Werte nur dann an, wenn die Werte den Ausdruck oder die Bedingung erfüllen, die im IF
-Abfragefragment erwähnt werden.
Lassen Sie uns verstehen, wie diese Methode funktioniert.
Bevor wir beginnen, erstellen wir einen Dummy-Datensatz, an dem wir arbeiten können.
-- create the table student_details
CREATE TABLE student_details(
stu_id int,
stu_firstName varchar(255) DEFAULT NULL,
stu_lastName varchar(255) DEFAULT NULL,
primary key(stu_id)
);
-- insert rows to the table student_details
INSERT INTO student_details(stu_id,stu_firstName,stu_lastName)
VALUES(1,"Preet","Sanghavi"),
(2,"Rich","John"),
(3,"Veron","Brow"),
(4,"Geo","Jos"),
(5,"Hash","Shah"),
(6,"Sachin","Parker"),
(7,"David","Miller");
Verwenden des Count IF
in MySQL
Die grundlegende Syntax der COUNT IF
-Technik lässt sich wie folgt veranschaulichen.
SELECT COUNT(IF(<condition>, <expr>, NULL)) AS alias FROM name_of_the_table;
Wie in der obigen Abfrage zu sehen ist, zielen wir darauf ab, unterschiedliche oder nicht unterschiedliche Werte, die hier als expr
angegeben sind, aus einer bestimmten Tabelle zu zählen, basierend auf einer Bedingung, die in der IF
-Klausel als Bedingung
definiert ist.
Lassen Sie uns in unserer Tabelle mit Studentendetails die Gesamtzahl der unterschiedlichen stu_id
zählen, deren stu_firstName
auf reet
endet. Diese Aufgabe kann mit der folgenden Abfrage gelöst werden.
SELECT DISTINCT
COUNT(DISTINCT IF(stu_firstName like '%reet',
stu_id,
NULL)) AS count_student_ids
FROM student_details;
Dieser Code zählt verschiedene Zahlen von stu_id
aus der Tabelle student_details
unter der Bedingung, dass stu_firstName
in der IF
-Klausel mit reet
enden sollte.
Ausgabe:
count_student_ids
1
Hinweis: Im obigen Codeausschnitt verwenden wir den Alias count_student_ids
mit dem Schlüsselwort AS
in MySQL.
Eine Alternative zur COUNT IF
-Technik ist die SUM CASE
-Technik, die uns helfen kann, ähnliche Ergebnisse zu erzielen.
Daher können wir mit Hilfe der COUNT IF
-Technik die Gesamtzahl der Vorkommen einer Entität basierend auf einer bestimmten Bedingung aus einer Tabelle in MySQL effizient zählen.