לפני שנבין את הרעיון של פונקציית ספירה עם מילת המפתח 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
הפלט של שאילתת ה-SELECT לעיל הוא שתים עשרה בגלל שה- מורה_גיל השדה אינו מכיל ערך NULL כלשהו.
השאילתה הבאה סופרת את הערכים הכוללים של Teacher_Interview_Column מהטבלה שלמעלה:
SELECT COUNT (Teacher_Interview_Marks) AS Total_Teachers_Interview_Marks FROM Teacher_Details;
שאילתה זו תציג את הפלט שלהלן על המסך:
הפלט של שאילתת ה-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(*) תיתן את התוצאה להלן על המסך:
מה זה 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 ;
תְפוּקָה:
כפי שאנו יכולים לראות, שחור, אדום ולבן הם שלושה ערכים נפרדים בעמודה 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 ;
שאילתה זו תיתן את הטבלה שלהלן בפלט:
הפלט מציג את ארבעת הערכים מכיוון שהעמודה 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 ;
שאילתה זו תיתן את הפלט שלהלן: