logo

SQL COUNT DISTINCT

Ennen kuin ymmärrämme Count Functionin käsitteen DISTINCT-avainsanalla, meidän on tiedettävä Count- ja Distinct-avainsanat. Joten aloitetaan Count-funktiolla.

Mikä on Count SQL:ssä?

COUNT on Structured Query Language -funktio, joka näyttää taulukon tietueiden määrän tuloksessa. SQL:ssä sitä käytetään aina SELECT-kyselyssä.

Count-funktion syntaksi on annettu alla:

 SELECT COUNT(Name_of_Column) FROM Name_of_Table; 

Laskentaesimerkissä meidän on määritettävä sarakkeen nimi suluissa heti avainsanan COUNT jälkeen.

Esimerkki laskentafunktiosta

Ensinnäkin meidän on luotava uusi taulukko, jossa laskentatoiminto suoritetaan.

Seuraava kysely luo Opettaja_tiedot pöytä kanssa Opettajan_ID ensisijaisena avaimena käyttämällä CREATE TABLE -käskyä:

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

Seuraavat SQL-kyselyt lisäävät uusien opettajien tietueen yllä olevaan taulukkoon käyttämällä INSERT INTO -käskyä:

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

Katsotaan yllä olevan taulukon tietue käyttämällä seuraavaa SELECT-käskyä:

 SELECT * FROM Teacher_Details; 

Opettajan_ID Opettajan nimi Opettaja_pätevyys Opettajan_ikä Opettaja_haastattelu_Marks
101 Anuj B.tech kaksikymmentä 88
102 Raman MCA 24 TYHJÄ
104 Shyam BBA 19 92
107 Vikash B.tech kaksikymmentä TYHJÄ
111 Monu MBA kaksikymmentäyksi TYHJÄ
114 Jones B.tech 18 93
121 Hiukset BCA kaksikymmentä 97
123 Divya B.tech kaksikymmentäyksi TYHJÄ
128 Hemant MBA 23 90
130 Nidhi BBA kaksikymmentä 88
132 Priya MBA 22 TYHJÄ
138 Mohit MCA kaksikymmentäyksi 92

Seuraava kysely laskee Teacher_Age-sarakkeen kokonaisarvot Teacher_Details-taulukosta:

 SELECT COUNT (Teacher_Age) AS Total_Teachers_Age_Column FROM Teacher_Details; 

Lähtö:

tallennettu ohjelman ohjaus
SQL COUNT DISTINCT

Yllä olevan SELECT-kyselyn tulos on kaksitoista, koska Opettajan_ikä kentässä ei ole NULL-arvoa.

Seuraava kysely laskee Teacher_Interview_Column-sarakkeen kokonaisarvot yllä olevasta taulukosta:

 SELECT COUNT (Teacher_Interview_Marks) AS Total_Teachers_Interview_Marks FROM Teacher_Details; 

Tämä kysely näyttää alla olevan tulosteen näytöllä:

SQL COUNT DISTINCT

Yllä olevan SELECT-kyselyn tulos on 7, koska Teacher_Interview_Marks-sarakkeen kaksi viisi solua sisältävät NULL-arvon. Ja nämä viisi NULL-arvoa jätetään pois. Tästä syystä SELECT-kysely näyttää tuloksessa 7 12:n sijaan.

Mikä on Count(*)-funktio?

Tämä on myös samanlainen kuin Count-funktio, mutta ainoa ero on, että se näyttää myös taulukon NULL-arvojen määrän.

Count (*) -funktion syntaksi annetaan tässä:

 SELECT COUNT(*) FROM Name_of_Table; 

Esimerkki:

Otetaanpa yllä oleva Teacher_Details:

Opettajan_ID Opettajan nimi Opettaja_pätevyys Opettajan_ikä Opettaja_haastattelu_Marks
101 Anuj B.tech kaksikymmentä 88
102 Raman MCA 24 TYHJÄ
104 Shyam BBA 19 92
107 Vikash B.tech kaksikymmentä TYHJÄ
111 Monu MBA kaksikymmentäyksi TYHJÄ
114 Jones B.tech 18 93
121 Hiukset BCA kaksikymmentä 97
123 Divya B.tech kaksikymmentäyksi TYHJÄ
128 Hemant MBA 23 90
130 Nidhi BBA kaksikymmentä 88
132 Priya MBA 22 TYHJÄ
138 Mohit MCA kaksikymmentäyksi 92

Seuraava kysely laskee kokonaisarvot Yhteensä_haastattelu_pisteet sarake yllä olevasta taulukosta:

linux muokata tiedostoa
 SELECT COUNT (*) FROM Teacher_Details; 

Yllä oleva SELECT with COUNT(*) -kysely antaa alla olevan tuloksen näytölle:

SQL COUNT DISTINCT

Mikä on DISTINCT SQL:ssä?

DISTINCT-avainsana näyttää tuloksessa sarakkeen yksilölliset rivit taulukosta.

DISTINCT-avainsanan syntaksi on annettu tässä:

 SELECT DISTINCT Name_of_Column FROM Table_Name WHERE [condition]; 

DISTINCT-kyselyssä voimme myös määrittää WHERE-lauseen ehdon tiettyjen arvojen hakemiseksi.

Esimerkki: DISTINCT

Luo ensin uusi taulukko, jossa Distinct-avainsana ajetaan.

autocad venytyskomento

Seuraava kysely luo Pyörän_tiedot taulukko käyttäen CREATE TABLE -käskyä:

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

Seuraavat SQL-kyselyt lisäävät uusien pyörien tietueen taulukkoon käyttämällä INSERT INTO -käskyä:

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

Yllä olevan taulukon tietueet näytetään käyttämällä seuraavaa SELECT-kyselyä:

 SELECT * FROM Bike_Details; 

Pyörän_nimi Pyörän_malli Pyörän_väri Bike_Cost
KTM DUKE 2019 Musta 185 000
Royal Enfield 2020 Musta 165 000
Lehdistö 2018 Punainen 90 000
Apache 2020 Valkoinen 85 000
Elää 2018 Musta 80 000
KTM RC 2020 Punainen 195 000

Pöytä: Pyörän_tiedot

Seuraava SQL kyselee Color-sarakkeen eri arvoja yllä olevista Pyörän_tiedot pöytä:

 SELECT DISTINCT Bike_Color FROM Bikes ; 

Lähtö:

SQL COUNT DISTINCT

Kuten näemme, musta, punainen ja valkoinen ovat kolme erillistä arvoa Bike_Color -sarakkeessa.

merkkijono vertaa javaa

Count Funktio DISTINCT avainsanalla

DISTINCT-avainsana COUNT-funktiolla SELECT-kyselyssä näyttää kentän yksilöllisten tietojen määrän taulukosta.

DISTINCT-avainsanan Count-funktion syntaksi on annettu alla:

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

Esimerkkejä Count-funktiosta DISTINCT-avainsanalla

Seuraavat kaksi SQL-esimerkkiä selittävät Count Function -toiminnon suorittamisen Distinct-avainsanalla:

Esimerkki 1:

Seuraava kysely luo College_Students-taulukon, jossa on neljä kenttää:

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

Seuraava INSERT-kysely lisää opiskelijatietueen College_Students-taulukkoon:

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

Seuraava kysely näyttää College_Students-taulukon tiedot:

 SELECT * FROM College_Students; 

Opiskelijanumero Opiskelijan nimi Opiskelija-ikä Student_Marks
101 Akhil 28 95
102 Abhay 27 86
103 Sorya 26 79
104 Abhishek 27 66
105 Hrithik 26 79
106 Yash 29 88

Taulukko: College_Students

Seuraava SQL-lause laskee Student_Age -sarakkeen yksilölliset arvot College_Students-taulukosta:

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

Tämä kysely antaa alla olevan taulukon tulosteessa:

SQL COUNT DISTINCT

Tulos näyttää neljä arvoa, koska Teacher_age-sarake sisältää 4 yksilöllistä arvoa.

ls komentaa linuxia

Esimerkki 2:

Seuraava kysely luo IT_Employee-taulukon, jossa on neljä kenttää:

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

Seuraava INSERT-kysely lisää IT-työntekijöiden tietueen IT_Employee-taulukkoon:

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

Seuraava kysely näyttää IT_Employee-taulukon tiedot:

 SELECT * FROM IT_Employee; 

Henkilöstökortti Työntekijän nimi Työntekijän_ikä Työntekijän_palkka
101 Akhil 28 25 000
102 Abhay 27 26 000
103 Sorya 26 29 000
104 Abhishek 27 26 000
105 Hrithik 26 29 000
106 Yash 29 25 000

Taulukko: IT_Työntekijä

Seuraava SQL-käsky laskee vain Emp_Age-sarakkeen yksilölliset arvot yllä olevasta IT_Employee-taulukosta:

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

Tämä kysely antaa seuraavan tuloksen:

SQL COUNT DISTINCT