logo

SQL COUNT DISTINCT

DISTINCT anahtar kelimesi ile Count Fonksiyonu kavramını anlamadan önce Count ve Distinct anahtar kelimeleri hakkında bilgi sahibi olmamız gerekmektedir. Öyleyse Count işleviyle başlayalım.

SQL'de Count nedir?

COUNT, Yapılandırılmış Sorgu Dili'nde sonuçtaki tablodaki kayıt sayısını gösteren bir işlevdir. SQL'de her zaman SELECT sorgusunda kullanılır.

Java normal ifadesi $

Count fonksiyonunun sözdizimi aşağıda verilmiştir:

 SELECT COUNT(Name_of_Column) FROM Name_of_Table; 

Count örneğinde sütunun adını COUNT anahtar sözcüğünden hemen sonra parantez içinde tanımlamamız gerekiyor.

Sayma Fonksiyonu Örneği

Öncelikle sayma fonksiyonunun çalıştırılacağı yeni bir tablo oluşturmamız gerekiyor.

Aşağıdaki sorgu şunu oluşturur: Öğretmen_Detayları ile masa Öğretmen_ID CREATE TABLE ifadesini kullanarak birincil anahtar olarak:

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

Aşağıdaki SQL sorguları, INSERT INTO ifadesini kullanarak yeni öğretmenlerin kaydını yukarıdaki tabloya ekler:

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

Aşağıdaki SELECT ifadesini kullanarak yukarıdaki tablonun kaydını görelim:

 SELECT * FROM Teacher_Details; 

Öğretmen_ID Öğretmen adı Öğretmen_Niteliği Teacher_Age Teacher_Interview_Marks
101 Anuj B.teknoloji yirmi 88
102 Raman MCA 24 HÜKÜMSÜZ
104 Shyam BBA 19 92
107 Vikaş B.teknoloji yirmi HÜKÜMSÜZ
111 Monu İşletme Yüksek Lisansı yirmi bir HÜKÜMSÜZ
114 Jones B.teknoloji 18 93
121 Saç BCA yirmi 97
123 Divya B.teknoloji yirmi bir HÜKÜMSÜZ
128 Hemant İşletme Yüksek Lisansı 23 90
130 Nidhi BBA yirmi 88
132 Priya İşletme Yüksek Lisansı 22 HÜKÜMSÜZ
138 Mohit MCA yirmi bir 92

Aşağıdaki sorgu, Teacher_Details tablosundaki Teacher_Age sütununun toplam değerlerini sayar:

 SELECT COUNT (Teacher_Age) AS Total_Teachers_Age_Column FROM Teacher_Details; 

Çıktı:

SQL COUNT DISTINCT

Yukarıdaki SELECT sorgusunun çıktısı on ikidir çünkü Teacher_Age alan herhangi bir NULL değeri içermiyor.

Aşağıdaki sorgu, yukarıdaki tablodaki Teacher_Interview_Column'un toplam değerlerini sayar:

 SELECT COUNT (Teacher_Interview_Marks) AS Total_Teachers_Interview_Marks FROM Teacher_Details; 

Bu sorgu ekranda aşağıdaki çıktıyı gösterecektir:

SQL COUNT DISTINCT

Yukarıdaki SELECT sorgusunun çıktısı 7'dir çünkü Teacher_Interview_Marks sütununun iki beş hücresi NULL içerir. Ve bu beş NULL değeri hariç tutulmuştur. SELECT sorgusunun sonuçta 12 yerine 7 göstermesinin nedeni budur.

Count(*) Fonksiyonu Nedir?

Bu aynı zamanda Count işlevine benzer ancak tek farkı, tablodaki NULL değerlerinin sayısını da göstermesidir.

Count (*) Fonksiyonunun sözdizimi burada verilmiştir:

 SELECT COUNT(*) FROM Name_of_Table; 

Örnek:

Yukarıdaki Teacher_Details'ı ele alalım:

Öğretmen_ID Öğretmen adı Öğretmen_Niteliği Teacher_Age Teacher_Interview_Marks
101 Anuj B.teknoloji yirmi 88
102 Raman MCA 24 HÜKÜMSÜZ
104 Shyam BBA 19 92
107 Vikaş B.teknoloji yirmi HÜKÜMSÜZ
111 Monu İşletme Yüksek Lisansı yirmi bir HÜKÜMSÜZ
114 Jones B.teknoloji 18 93
121 Saç BCA yirmi 97
123 Divya B.teknoloji yirmi bir HÜKÜMSÜZ
128 Hemant İşletme Yüksek Lisansı 23 90
130 Nidhi BBA yirmi 88
132 Priya İşletme Yüksek Lisansı 22 HÜKÜMSÜZ
138 Mohit MCA yirmi bir 92

Aşağıdaki sorgu toplam değerleri sayar. Toplam_Röportaj_İşaretleri Yukarıdaki tablodan sütun:

 SELECT COUNT (*) FROM Teacher_Details; 

Yukarıdaki SELECT ile COUNT(*) sorgusu ekranda aşağıdaki sonucu verecektir:

SQL COUNT DISTINCT

SQL'de DISTINCT nedir?

DISTINCT anahtar sözcüğü, sonuçtaki tablodaki sütunun benzersiz satırlarını gösterir.

DISTINCT anahtar sözcüğünün sözdizimi burada verilmiştir:

 SELECT DISTINCT Name_of_Column FROM Table_Name WHERE [condition]; 

DISTINCT sorgusunda belirli değerlerin alınmasına yönelik WHERE deyimindeki koşulu da tanımlayabiliriz.

DISTINCT örneği

Öncelikle Distinct anahtar sözcüğünün çalıştırılacağı yeni bir tablo oluşturun.

Aşağıdaki sorgu şunu oluşturur: Bisiklet_Detayları CREATE TABLE deyimini kullanarak tablo:

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

Aşağıdaki SQL sorguları, INSERT INTO ifadesini kullanarak yeni bisikletlerin kaydını tabloya ekler:

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

Yukarıdaki tablonun kayıtları aşağıdaki SELECT sorgusu kullanılarak gösterilir:

 SELECT * FROM Bike_Details; 

Bisiklet_Adı Bisiklet_Modeli Bisiklet_Renk Bisiklet_Maliyeti
KTM DÜK 2019 Siyah 185000
Kraliyet Enfield 2020 Siyah 165000
Basmak 2018 Kırmızı 90000
Apaçi 2020 Beyaz 85.000
Canlı 2018 Siyah 80.000
KTM RC'si 2020 Kırmızı 195.000

Masa: Bisiklet_Detayları

Aşağıdaki SQL, Renk sütununun farklı değerlerini yukarıdakilerden sorgular Bisiklet_Detayları masa:

 SELECT DISTINCT Bike_Color FROM Bikes ; 

Çıktı:

SQL COUNT DISTINCT

Gördüğümüz gibi Bike_Color sütununda Siyah, Kırmızı ve Beyaz üç ayrı değerdir.

DISTINCT anahtar kelimesiyle Sayım İşlevi

SELECT sorgusunda COUNT işlevine sahip DISTINCT anahtar sözcüğü, tablodaki alanın benzersiz verilerinin sayısını görüntüler.

DISTINCT anahtar kelimesi ile Count Fonksiyonunun Sözdizimi aşağıda verilmiştir:

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

DISTINCT anahtar sözcüğüyle Sayım İşlevi örnekleri

Aşağıdaki iki SQL örneği, Count Fonksiyonunun Distinct anahtar sözcüğüyle yürütülmesini açıklayacaktır:

Örnek 1:

Aşağıdaki sorgu, dört alanlı College_Students tablosunu oluşturur:

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

Aşağıdaki INSERT sorgusu öğrencilerin kaydını College_Students tablosuna ekler:

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

Aşağıdaki sorgu College_Students tablosunun ayrıntılarını gösterir:

 SELECT * FROM College_Students; 

Öğrenci Kimliği Öğrenci adı Öğrenci_Yaşı Öğrenci_Marks'ı
101 Ahil 28 95
102 Abhay 27 86
103 Sorya 26 79
104 Abhişek 27 66
105 Hrithik 26 79
106 Yaşa 29 88

Tablo: Kolej_Öğrencileri

git çekme menşei ustası

Aşağıdaki SQL ifadesi College_Students tablosundaki Öğrenci_Age sütununun benzersiz değerlerini sayar:

 SELECT COUNT (DISTINCT (Student_Age) AS Unique_Age FROM College_Students ; 

Bu sorgu çıktıda aşağıdaki tabloyu verecektir:

SQL COUNT DISTINCT

Çıktı dört değeri gösterir çünkü Teacher_age sütunu 4 benzersiz değer içerir.

Örnek 2:

Aşağıdaki sorgu dört alanlı IT_Employee tablosunu oluşturur:

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

Aşağıdaki INSERT sorgusu BT çalışanlarının kaydını IT_Employee tablosuna ekler:

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

Aşağıdaki sorgu IT_Employee tablosunun ayrıntılarını gösterir:

 SELECT * FROM IT_Employee; 

Çalışan kimliği Çalışan Adı Çalışan_Yaşı Çalışan_Maaş
101 Ahil 28 25000
102 Abhay 27 26000
103 Sorya 26 29000
104 Abhişek 27 26000
105 Hrithik 26 29000
106 Yaşa 29 25000

Tablo: IT_Çalışan

Aşağıdaki SQL ifadesi yalnızca yukarıdaki IT_Employee tablosundaki Emp_Age sütununun benzersiz değerlerini sayar:

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

Bu sorgu aşağıdaki çıktıyı verecektir:

SQL COUNT DISTINCT