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ı:
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:
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'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ı:
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:
Çı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: