logo

SQL COUNT DISTINCT

Bevor wir das Konzept der Count-Funktion mit dem Schlüsselwort DISTINCT verstehen, müssen wir die Schlüsselwörter Count und Distinct kennen. Beginnen wir also mit der Count-Funktion.

Was ist Count in SQL?

COUNT ist eine Funktion in der Structured Query Language, die die Anzahl der Datensätze aus der Tabelle im Ergebnis anzeigt. In SQL wird es immer in der SELECT-Abfrage verwendet.

Die Syntax der Count-Funktion ist unten angegeben:

 SELECT COUNT(Name_of_Column) FROM Name_of_Table; 

Im Count-Beispiel müssen wir den Namen der Spalte in Klammern direkt nach dem Schlüsselwort COUNT definieren.

Beispiel einer Zählfunktion

Zunächst müssen wir eine neue Tabelle erstellen, auf der die Zählfunktion ausgeführt werden soll.

Java-Auflistung

Die folgende Abfrage erstellt die Teacher_Details Tisch mit Lehrer_ID als Primärschlüssel mit der CREATE TABLE-Anweisung:

 CREATE TABLE Teacher_Details ( Teacher_ID INT NOT NULL, Teacher_Name varchar(100), Teacher_Qualification varchar(50), Teacher_Age INT, Teacher_Interview_Marks INT ); 

Die folgenden SQL-Abfragen fügen den Datensatz neuer Lehrer mithilfe der INSERT INTO-Anweisung in die obige Tabelle ein:

 INSERT INTO Teacher_Details VALUES (101, Anuj, B.tech, 20, 88); INSERT INTO Teacher_Details VALUES (102, Raman, MCA, 24, NULL); INSERT INTO Teacher_Details VALUES (104, Shyam, BBA, 19, 92); INSERT INTO Teacher_Details VALUES (107, Vikash, B.tech, 20, NULL); INSERT INTO Teacher_Details VALUES (111, Monu, MBA, 21, NULL); INSERT INTO Teacher_Details VALUES (114, Jones, B.tech, 18, 93); INSERT INTO Teacher_Details VALUES (121, Parul, BCA, 20, 97); INSERT INTO Teacher_Details VALUES (123, Divya, B.tech, 21, NULL); INSERT INTO Teacher_Details VALUES (128, Hemant, MBA, 23, 90); INSERT INTO Teacher_Details VALUES (130, Nidhi, BBA, 20, 88); INSERT INTO Teacher_Details VALUES (132, Priya, MBA, 22, NULL); INSERT INTO Teacher_Details VALUES (138, Mohit, MCA, 21, 92); 

Sehen wir uns den Datensatz der obigen Tabelle mit der folgenden SELECT-Anweisung an:

 SELECT * FROM Teacher_Details; 

Lehrer_ID Der Name des Lehrers Lehrer_Qualifikation Lehrer_Alter Teacher_Interview_Marks
101 Anuj B.tech zwanzig 88
102 Raman MCA 24 NULL
104 Shyam BBA 19 92
107 Vikash B.tech zwanzig NULL
111 Monu MBA einundzwanzig NULL
114 Jones B.tech 18 93
121 Das Haar BCA zwanzig 97
123 Divya B.tech einundzwanzig NULL
128 Hemant MBA 23 90
130 Nidhi BBA zwanzig 88
132 Priya MBA 22 NULL
138 Mohit MCA einundzwanzig 92

Die folgende Abfrage zählt die Gesamtwerte der Spalte Teacher_Age aus der Tabelle Teacher_Details:

 SELECT COUNT (Teacher_Age) AS Total_Teachers_Age_Column FROM Teacher_Details; 

Ausgabe:

SQL COUNT DISTINCT

Die Ausgabe der obigen SELECT-Abfrage ist zwölf, weil die Lehrer_Alter Das Feld enthält keinen NULL-Wert.

Die folgende Abfrage zählt die Gesamtwerte von Teacher_Interview_Column aus der obigen Tabelle:

 SELECT COUNT (Teacher_Interview_Marks) AS Total_Teachers_Interview_Marks FROM Teacher_Details; 

Diese Abfrage zeigt die folgende Ausgabe auf dem Bildschirm an:

SQL COUNT DISTINCT

Die Ausgabe der obigen SELECT-Abfrage ist 7, da zwei fünf Zellen der Spalte Teacher_Interview_Marks NULL enthalten. Und diese fünf NULL-Werte sind ausgeschlossen. Aus diesem Grund zeigt die SELECT-Abfrage im Ergebnis 7 statt 12 an.

Was ist die Count(*)-Funktion?

Auch diese ähnelt der Count-Funktion, der einzige Unterschied besteht jedoch darin, dass sie auch die Anzahl der NULL-Werte aus der Tabelle anzeigt.

Die Syntax der Count (*)-Funktion ist hier angegeben:

 SELECT COUNT(*) FROM Name_of_Table; 

Beispiel:

Nehmen wir die obigen Teacher_Details:

Lehrer_ID Der Name des Lehrers Lehrer_Qualifikation Lehrer_Alter Teacher_Interview_Marks
101 Anuj B.tech zwanzig 88
102 Raman MCA 24 NULL
104 Shyam BBA 19 92
107 Vikash B.tech zwanzig NULL
111 Monu MBA einundzwanzig NULL
114 Jones B.tech 18 93
121 Das Haar BCA zwanzig 97
123 Divya B.tech einundzwanzig NULL
128 Hemant MBA 23 90
130 Nidhi BBA zwanzig 88
132 Priya MBA 22 NULL
138 Mohit MCA einundzwanzig 92

Die folgende Abfrage zählt die Gesamtwerte der Total_Interview_Marks Spalte aus der obigen Tabelle:

 SELECT COUNT (*) FROM Teacher_Details; 

Die obige SELECT mit COUNT(*)-Abfrage liefert das folgende Ergebnis auf dem Bildschirm:

SQL COUNT DISTINCT

Was ist DISTINCT in SQL?

Das Schlüsselwort DISTINCT zeigt die eindeutigen Zeilen der Spalte aus der Tabelle im Ergebnis an.

Die Syntax des Schlüsselworts DISTINCT ist hier angegeben:

 SELECT DISTINCT Name_of_Column FROM Table_Name WHERE [condition]; 

In der DISTINCT-Abfrage können wir auch die Bedingung in der WHERE-Klausel zum Abrufen der spezifischen Werte definieren.

Beispiel für DISTINCT

Erstellen Sie zunächst eine neue Tabelle, für die das Schlüsselwort Distinct ausgeführt werden soll.

Die folgende Abfrage erstellt die Bike_Details Tabelle mithilfe der CREATE TABLE-Anweisung:

 CREATE TABLE Bike_Details ( Bike_Name varchar(100), Bike_Model INT, Bike_Color varchar(50), Bike_Cost INT ); 

Die folgenden SQL-Abfragen fügen den Datensatz neuer Fahrräder mithilfe der INSERT INTO-Anweisung in die Tabelle ein:

 INSERT INTO Bike_Details VALUES (KTM DUKE, 2019, Black, 185000); INSERT INTO Bike_Details VALUES (royal Infield, 2020, Black, 165000); INSERT INTO Bike_Details VALUES (Pulsar, 2018, Red, 90000); INSERT INTO Bike_Details VALUES (Apache, 2020, White, 85000); INSERT INTO Bike_Details VALUES (Livo, 2018, Black, 80000); INSERT INTO Bike_Details VALUES (KTM RC, 2020, Red, 195000); 

Die Datensätze der obigen Tabelle werden mithilfe der folgenden SELECT-Abfrage angezeigt:

 SELECT * FROM Bike_Details; 

Fahrradname Fahrradmodell Bike_Color Fahrrad_Kosten
KTM DUKE 2019 Schwarz 185000
Royal Enfield 2020 Schwarz 165000
Drücken Sie 2018 Rot 90000
Apache 2020 Weiß 85.000
Live 2018 Schwarz 80.000
KTM RC 2020 Rot 195.000

Tisch: Bike_Details

Die folgende SQL fragt die unterschiedlichen Werte der Spalte „Farbe“ von oben ab Bike_Details Tisch:

Arithmetik-Logikeinheit
 SELECT DISTINCT Bike_Color FROM Bikes ; 

Ausgabe:

SQL COUNT DISTINCT

Wie wir sehen können, sind Schwarz, Rot und Weiß drei unterschiedliche Werte in der Spalte Bike_Color.

Zählfunktion mit DISTINCT-Schlüsselwort

Das Schlüsselwort DISTINCT mit der Funktion COUNT in der SELECT-Abfrage zeigt die Anzahl der eindeutigen Daten des Felds aus der Tabelle an.

Die Syntax der Zählfunktion mit dem Schlüsselwort DISTINCT ist unten angegeben:

 SELECT COUNT(DISTINCT (Column_Name) FROM table_name WHERE [condition]; 

Beispiele für die Zählfunktion mit dem Schlüsselwort DISTINCT

Die folgenden zwei SQL-Beispiele erläutern die Ausführung der Count-Funktion mit dem Schlüsselwort Distinct:

Beispiel 1:

Die folgende Abfrage erstellt die Tabelle „College_Students“ mit vier Feldern:

 CREATE TABLE College_Students ( Student_Id INT NOT NULL, Student_Name Varchar (40), Student_Age INT, Student_Marks INT ); 

Die folgende INSERT-Abfrage fügt den Datensatz der Studenten in die Tabelle College_Students ein:

 INSERT INTO College_Students (Student_Id, Student_Name, Student_Age, Student_Marks) VALUES (101, Akhil, 28, 95), (102, Abhay, 27, 86), (103, Sorya, 26, 79), (104, Abhishek, 27, 66), (105, Ritik, 26, 79), (106, Yash, 29, 88); 

Die folgende Abfrage zeigt die Details der Tabelle „College_Students“:

 SELECT * FROM College_Students; 

Studenten ID Name des Studenten Student_Age Student_Marks
101 Akhil 28 95
102 Abhay 27 86
103 Sorja 26 79
104 Abhishek 27 66
105 Hrithik 26 79
106 Yash 29 88

Tabelle: College_Students

Die folgende SQL-Anweisung zählt die eindeutigen Werte der Spalte „Student_Age“ aus der Tabelle „College_Students“:

xampp-Alternative
 SELECT COUNT (DISTINCT (Student_Age) AS Unique_Age FROM College_Students ; 

Diese Abfrage liefert in der Ausgabe die folgende Tabelle:

SQL COUNT DISTINCT

Die Ausgabe zeigt die vier Werte, da die Spalte Teacher_age vier eindeutige Werte enthält.

Beispiel 2:

Die folgende Abfrage erstellt die Tabelle IT_Employee mit vier Feldern:

 CREATE TABLE IT_Employee ( Employee_Id INT NOT NULL, Employee_Name Varchar (40), Emp_Age INT, Employee_Salary INT ); 

Die folgende INSERT-Abfrage fügt den Datensatz der IT-Mitarbeiter in die Tabelle IT_Employee ein:

 INSERT INTO IT_Employee (Employee_Id, Employee_Name, Employee_Age, Employee_Salary) VALUES (101, Akhil, 28, 25000), (102, Abhay, 27, 26000), (103, Sorya, 26, 29000), (104, Abhishek, 27, 26000), (105, Ritik, 26, 29000), (106, Yash, 29, 25000); 

Die folgende Abfrage zeigt die Details der Tabelle IT_Employee:

 SELECT * FROM IT_Employee; 

Angestellten ID Mitarbeitername Employee_Age Mitarbeiter_Gehalt
101 Akhil 28 25000
102 Abhay 27 26000
103 Sorja 26 29000
104 Abhishek 27 26000
105 Hrithik 26 29000
106 Yash 29 25000

Tabelle: IT_Employee

Die folgende SQL-Anweisung zählt nur die eindeutigen Werte der Spalte Emp_Age aus der obigen Tabelle IT_Employee:

 SELECT COUNT (DISTINCT (Employee_Age)) AS Unique_Age FROM IT_Employee ; 

Diese Abfrage liefert die folgende Ausgabe:

SQL COUNT DISTINCT