logo

SQL SKAIČIUS ATSKIRIAMAS

Prieš suprasdami skaičiavimo funkcijos sąvoką su DISTINCT raktiniu žodžiu, turime žinoti apie Count ir Distinct raktinius žodžius. Taigi, pradėkime nuo funkcijos Count.

Kas yra skaičius SQL?

SKAIČIUS yra struktūrinės užklausos kalbos funkcija, rodanti lentelės įrašų skaičių rezultate. SQL jis visada naudojamas SELECT užklausoje.

Funkcijos Count sintaksė pateikta žemiau:

 SELECT COUNT(Name_of_Column) FROM Name_of_Table; 

Skaičiavimo pavyzdyje turime apibrėžti stulpelio pavadinimą skliausteliuose iškart po raktinio žodžio COUNT.

yra ypatingas personažas

Skaičiavimo funkcijos pavyzdys

Pirmiausia turime sukurti naują lentelę, kurioje turi būti vykdoma skaičiavimo funkcija.

Ši užklausa sukuria Teacher_Details stalas su Mokytojo_ID kaip pirminį raktą naudojant CREATE TABLE teiginį:

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

Šios SQL užklausos įterpia naujų mokytojų įrašą į aukščiau pateiktą lentelę naudodami INSERT INTO sakinį:

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

Pažiūrėkime aukščiau pateiktos lentelės įrašą naudodami šį SELECT teiginį:

 SELECT * FROM Teacher_Details; 

Mokytojo_ID Mokytojo_vardas Mokytojo_kvalifikacija Mokytojo_amžius Mokytojo_Interviu_Žymės
101 Anuj B.tech dvidešimt 88
102 Ramanas MCA 24 NULL
104 Shyam BBA 19 92
107 Vikašas B.tech dvidešimt NULL
111 Monu MBA dvidešimt vienas NULL
114 Jonesas B.tech 18 93
121 Plaukai BCA dvidešimt 97
123 Divya B.tech dvidešimt vienas NULL
128 Hemantas MBA 23 90
130 Nidhi BBA dvidešimt 88
132 Priya MBA 22 NULL
138 Mohitas MCA dvidešimt vienas 92

Ši užklausa skaičiuoja bendras stulpelio Teacher_Age vertes iš lentelės Teacher_Details:

 SELECT COUNT (Teacher_Age) AS Total_Teachers_Age_Column FROM Teacher_Details; 

Išvestis:

SQL SKAIČIUS ATSKIRIAMAS

Aukščiau pateiktos SELECT užklausos išvestis yra dvylika, nes Mokytojo_amžius lauke nėra jokios NULL reikšmės.

Ši užklausa skaičiuoja bendras Teacher_Interview_Column reikšmes iš aukščiau pateiktos lentelės:

 SELECT COUNT (Teacher_Interview_Marks) AS Total_Teachers_Interview_Marks FROM Teacher_Details; 

Ši užklausa ekrane parodys žemiau pateiktą išvestį:

SQL SKAIČIUS ATSKIRIAMAS

Aukščiau pateiktos SELECT užklausos išvestis yra 7, nes dviejuose penkiuose stulpelio Teacher_Interview_Marks langeliuose yra NULL. Ir šios penkios NULL reikšmės neįtraukiamos. Štai kodėl SELECT užklausa rezultate rodo 7, o ne 12.

Kas yra Count (*) funkcija?

Tai taip pat panaši į funkciją Count, tačiau vienintelis skirtumas yra tas, kad ji taip pat rodo NULL verčių skaičių iš lentelės.

Funkcijos Skaičiavimas (*) sintaksė pateikiama čia:

 SELECT COUNT(*) FROM Name_of_Table; 

Pavyzdys:

Paimkime aukščiau pateiktą „Teacher_Details“:

Mokytojo_ID Mokytojo_vardas Mokytojo_kvalifikacija Mokytojo_amžius Mokytojo_Interviu_Žymės
101 Anuj B.tech dvidešimt 88
102 Ramanas MCA 24 NULL
104 Shyam BBA 19 92
107 Vikašas B.tech dvidešimt NULL
111 Monu MBA dvidešimt vienas NULL
114 Jonesas B.tech 18 93
121 Plaukai BCA dvidešimt 97
123 Divya B.tech dvidešimt vienas NULL
128 Hemantas MBA 23 90
130 Nidhi BBA dvidešimt 88
132 Priya MBA 22 NULL
138 Mohitas MCA dvidešimt vienas 92

Ši užklausa skaičiuoja bendras reikšmes Total_Interview_Marks stulpelis iš aukščiau pateiktos lentelės:

 SELECT COUNT (*) FROM Teacher_Details; 

Aukščiau pateikta SELECT with COUNT (*) užklausa parodys tokį rezultatą ekrane:

SQL SKAIČIUS ATSKIRIAMAS

Kas yra DISTINCT SQL?

Raktinis žodis DISTINCT rodo unikalias rezultato lentelės stulpelio eilutes.

DISTINCT raktinio žodžio sintaksė pateikiama čia:

 SELECT DISTINCT Name_of_Column FROM Table_Name WHERE [condition]; 

Užklausoje DISTINCT taip pat galime apibrėžti sąlygą WHERE, skirtą konkrečioms reikšmėms gauti.

java pridėti eilutę

DISTINCT pavyzdys

Pirmiausia sukurkite naują lentelę, kurioje bus paleistas išskirtinis raktinis žodis.

valdymo struktūrų python

Ši užklausa sukuria Bike_Details lentelė naudojant CREATE TABLE teiginį:

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

Šios SQL užklausos įterpia naujų dviračių įrašą į lentelę naudojant INSERT INTO sakinį:

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

Aukščiau pateiktos lentelės įrašai rodomi naudojant šią SELECT užklausą:

 SELECT * FROM Bike_Details; 

Dviračio_pavadinimas Dviračio_modelis Dviračio_spalva Bike_Cost
KTM DUKE 2019 m Juoda 185 000
Karališkasis Enfieldas 2020 m Juoda 165 000
Paspauskite 2018 m Raudona 90 000
Apache 2020 m Baltas 85 000
Tiesiogiai 2018 m Juoda 80 000
KTM RC 2020 m Raudona 195 000

Lentelė: Bike_Details

Toliau pateikiama SQL užklausa dėl skirtingų stulpelio Spalva reikšmių iš aukščiau pateiktų Bike_Details lentelė:

 SELECT DISTINCT Bike_Color FROM Bikes ; 

Išvestis:

SQL SKAIČIUS ATSKIRIAMAS

Kaip matome, juoda, raudona ir balta yra trys skirtingos reikšmės stulpelyje „Bike_Color“.

Skaičiavimo funkcija su DISTINCT raktiniu žodžiu

DISTINCT raktinis žodis su funkcija COUNT užklausoje SELECT rodo unikalių lauko duomenų skaičių iš lentelės.

Skaičiavimo funkcijos su DISTINCT sintaksė pateikta žemiau:

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

Skaičiavimo funkcijos su DISTINCT raktiniu žodžiu pavyzdžiai

Šie du SQL pavyzdžiai paaiškins, kaip atlikti skaičiavimo funkciją naudojant atskirą raktinį žodį:

1 pavyzdys:

Ši užklausa sukuria lentelę College_Students su keturiais laukais:

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

Ši INSERT užklausa įterpia studentų įrašą į lentelę 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); 

Šioje užklausoje rodoma išsami lentelės College_Students informacija:

 SELECT * FROM College_Students; 

Studento pažymėjimas Studento vardas Studentų_amžius Studentas_Žymės
101 Akhilas 28 95
102 Abhay 27 86
103 Sorya 26 79
104 Abhišekas 27 66
105 Hrithik 26 79
106 Yash 29 88

Lentelė: Kolegija_Studentai

Kaip pašalinti pirmąjį simbolį „Excel“.

Šis SQL sakinys skaičiuoja unikalias stulpelio Student_Age reikšmes iš lentelės College_Students:

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

Ši užklausa išvestyje pateiks žemiau esančią lentelę:

SQL SKAIČIUS ATSKIRIAMAS

Išvestyje rodomos keturios reikšmės, nes stulpelyje Teacher_age yra 4 unikalios reikšmės.

2 pavyzdys:

Ši užklausa sukuria lentelę IT_Employee su keturiais laukais:

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

Ši INSERT užklausa įterpia IT darbuotojų įrašą į lentelę IT_Employee:

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

Šioje užklausoje rodoma išsami lentelės IT_Employee informacija:

 SELECT * FROM IT_Employee; 

Darbuotojo ID Darbuotojo vardas Darbuotojo_amžius Darbuotojo_Atlyginimas
101 Akhilas 28 25 000
102 Abhay 27 26 000
103 Sorya 26 29 000
104 Abhišekas 27 26 000
105 Hrithik 26 29 000
106 Yash 29 25 000

Lentelė: IT_Darbuotojas

Šis SQL sakinys skaičiuoja tik unikalias stulpelio Emp_Age reikšmes iš aukščiau pateiktos IT_Employee lentelės:

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

Ši užklausa duos žemiau pateiktą išvestį:

SQL SKAIČIUS ATSKIRIAMAS