logo

SQL COUNT DISTINCT

לפני שנבין את הרעיון של פונקציית ספירה עם מילת המפתח DISTINCT, עלינו לדעת על מילות המפתח Count ו-Distinct. אז בואו נתחיל עם הפונקציה Count.

מה זה Count ב-SQL?

ה-COUNT הוא פונקציה ב-Structured Query Language שמראה את מספר הרשומות מהטבלה בתוצאה. ב-SQL הוא משמש תמיד בשאילתת ה-SELECT.

התחביר של הפונקציה Count ניתן להלן:

 SELECT COUNT(Name_of_Column) FROM Name_of_Table; 

בדוגמה לספירה, עלינו להגדיר את שם העמודה בסוגריים מיד אחרי מילת המפתח COUNT.

דוגמה לפונקציית ספירה

ראשית, עלינו ליצור טבלה חדשה שעליה יש לבצע את פונקציית הספירה.

השאילתה הבאה יוצרת את מורה_פרטים שולחן עם Teacher_ID כמפתח הראשי באמצעות המשפט CREATE TABLE:

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

שאילתות ה-SQL הבאות מכניסות את הרשומה של מורים חדשים לטבלה שלמעלה באמצעות משפט INSERT INTO:

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

בוא נראה את הרשומה של הטבלה לעיל תוך שימוש במשפט ה-SELECT הבא:

 SELECT * FROM Teacher_Details; 

Teacher_ID שם המורה מורה_הסמכה מורה_גיל ציוני_ראיון_מורה
101 אנוג' B.tech עשרים 88
102 ראמאן MCA 24 ריק
104 שיאם BBA 19 92
107 ויקאש B.tech עשרים ריק
111 מונו MBA עשרים ואחת ריק
114 ג'ונס B.tech 18 93
121 השיער BCA עשרים 97
123 דיוויה B.tech עשרים ואחת ריק
128 המנט MBA 23 90
130 נידהי BBA עשרים 88
132 פריה MBA 22 ריק
138 מוהיט MCA עשרים ואחת 92

השאילתה הבאה סופרת את הערכים הכוללים של העמודה Teacher_Age מהטבלה Teacher_Details:

 SELECT COUNT (Teacher_Age) AS Total_Teachers_Age_Column FROM Teacher_Details; 

תְפוּקָה:

דוגמה למחרוזת משנה של java
SQL COUNT DISTINCT

הפלט של שאילתת ה-SELECT לעיל הוא שתים עשרה בגלל שה- מורה_גיל השדה אינו מכיל ערך NULL כלשהו.

השאילתה הבאה סופרת את הערכים הכוללים של Teacher_Interview_Column מהטבלה שלמעלה:

 SELECT COUNT (Teacher_Interview_Marks) AS Total_Teachers_Interview_Marks FROM Teacher_Details; 

שאילתה זו תציג את הפלט שלהלן על המסך:

SQL COUNT DISTINCT

הפלט של שאילתת ה-SELECT לעיל הוא 7 מכיוון ששני חמישה תאים בעמודה Teacher_Interview_Marks מכילים NULL. וחמשת ערכי NULL אלה אינם נכללים. זו הסיבה שהשאילתה SELECT מציגה 7 במקום 12 בתוצאה.

מהי פונקציית Count(*)?

זה גם דומה לפונקציה Count, אבל ההבדל היחיד הוא שהיא מציגה גם את מספר ערכי ה-NULL מהטבלה.

התחביר של הפונקציה Count (*) ניתן כאן:

 SELECT COUNT(*) FROM Name_of_Table; 

דוגמא:

מחרוזות קונקט של java

בואו ניקח את המורה_פרטים לעיל:

Teacher_ID שם המורה מורה_הסמכה מורה_גיל ציוני_ראיון_מורה
101 אנוג' B.tech עשרים 88
102 ראמאן MCA 24 ריק
104 שיאם BBA 19 92
107 ויקאש B.tech עשרים ריק
111 מונו MBA עשרים ואחת ריק
114 ג'ונס B.tech 18 93
121 השיער BCA עשרים 97
123 דיוויה B.tech עשרים ואחת ריק
128 המנט MBA 23 90
130 נידהי BBA עשרים 88
132 פריה MBA 22 ריק
138 מוהיט MCA עשרים ואחת 92

השאילתה הבאה סופרת את הערכים הכוללים של ה- סך_ראיונות_סימני עמודה מהטבלה לעיל:

 SELECT COUNT (*) FROM Teacher_Details; 

שאילתת ה-SELECT שלמעלה עם COUNT(*) תיתן את התוצאה להלן על המסך:

SQL COUNT DISTINCT

מה זה DISTINCT ב-SQL?

מילת המפתח DISTINCT מציגה את השורות הייחודיות של העמודה מהטבלה בתוצאה.

התחביר של מילת המפתח DISTINCT ניתן כאן:

 SELECT DISTINCT Name_of_Column FROM Table_Name WHERE [condition]; 

בשאילתת DISTINCT, נוכל גם להגדיר את התנאי במשפט WHERE לאחזור הערכים הספציפיים.

דוגמה של DISTINCT

ראשית, צור טבלה חדשה שעליה יש להפעיל את מילת המפתח Distinct.

מחרוזת ל-jsonobject

השאילתה הבאה יוצרת את אופניים_פרטים טבלה באמצעות המשפט CREATE TABLE:

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

שאילתות SQL הבאות מכניסות את הרשומה של אופניים חדשים לטבלה באמצעות המשפט INSERT INTO:

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

הרשומות של הטבלה לעיל מוצגות באמצעות שאילתת ה-SELECT הבאה:

 SELECT * FROM Bike_Details; 

שם_אופניים דגם_אופניים צבע_אופניים עלות_אופניים
KTM DUKE 2019 שָׁחוֹר 185000
רויאל אנפילד 2020 שָׁחוֹר 165,000
ללחוץ 2018 אָדוֹם 90000
אפאצ'י 2020 לבן 85,000
לחיות 2018 שָׁחוֹר 80,000
KTM RC 2020 אָדוֹם 195,000

שולחן: אופניים_פרטים

ה-SQL הבא שואל את הערכים המובחנים של עמודת הצבע מהאמור לעיל אופניים_פרטים שולחן:

 SELECT DISTINCT Bike_Color FROM Bikes ; 

תְפוּקָה:

SQL COUNT DISTINCT

כפי שאנו יכולים לראות, שחור, אדום ולבן הם שלושה ערכים נפרדים בעמודה Bike_Color.

פונקציית ספירה עם מילת מפתח DISTINCT

מילת המפתח DISTINCT עם הפונקציה COUNT בשאילתת SELECT מציגה את מספר הנתונים הייחודיים של השדה מהטבלה.

תחביר פונקציית הספירה עם מילת המפתח DISTINCT מובא להלן:

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

דוגמאות לפונקציית ספירה עם מילת מפתח DISTINCT

שתי דוגמאות SQL הבאות יסבירו את הביצוע של פונקציית Count עם מילת מפתח מובחנת:

דוגמה 1:

השאילתה הבאה יוצרת את הטבלה College_Students עם ארבעה שדות:

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

שאילתת ה-INSERT הבאה מוסיפה את רשומת התלמידים לטבלת College_Students:

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

השאילתה הבאה מציגה את הפרטים של טבלת College_Students:

 SELECT * FROM College_Students; 

תעודת סטודנט שם תלמיד תלמיד_גיל תלמיד_ציוני
101 אכיל 28 95
102 אבהיי 27 86
103 סוריה 26 79
104 אבהישק 27 66
105 חריתיק 26 79
106 יאש 29 88

טבלה: מכללה_סטודנטים

הצהרת SQL הבאה סופרת את הערכים הייחודיים של העמודה Student_Age מטבלת College_Students:

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

שאילתה זו תיתן את הטבלה שלהלן בפלט:

SQL COUNT DISTINCT

הפלט מציג את ארבעת הערכים מכיוון שהעמודה Teacher_age מכילה 4 ערכים ייחודיים.

דוגמה 2:

השאילתה הבאה יוצרת את טבלת IT_Employee עם ארבעה שדות:

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

שאילתת ה-INSERT הבאה מוסיפה את הרשומה של עובדי IT לטבלת IT_Employee:

תו למחרוזת java
 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); 

השאילתה הבאה מציגה את הפרטים של טבלת IT_Employee:

 SELECT * FROM IT_Employee; 

כרטיס עובד שם העובד עובד_גיל עובד_שכר
101 אכיל 28 25,000
102 אבהיי 27 26000
103 סוריה 26 29000
104 אבהישק 27 26000
105 חריתיק 26 29000
106 יאש 29 25,000

טבלה: IT_Employee

הצהרת SQL הבאה סופרת רק את הערכים הייחודיים של העמודה Emp_Age מטבלת IT_Employee שלמעלה:

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

שאילתה זו תיתן את הפלט שלהלן:

SQL COUNT DISTINCT