Zanim zrozumiemy koncepcję funkcji Count ze słowem kluczowym DISTINCT, musimy poznać słowa kluczowe Count i Distinct. Zacznijmy więc od funkcji Count.
Co to jest liczba w SQL?
COUNT to funkcja w Structured Query Language, która pokazuje liczbę rekordów z tabeli w wyniku. W SQL jest zawsze używany w zapytaniu SELECT.
Poniżej podano składnię funkcji Count:
SELECT COUNT(Name_of_Column) FROM Name_of_Table;
W przykładzie count musimy zdefiniować nazwę kolumny w nawiasie tuż po słowie kluczowym COUNT.
Przykład funkcji zliczania
W pierwszej kolejności musimy stworzyć nową tabelę, na której ma zostać wykonana funkcja count.
Następujące zapytanie tworzy plik Nauczyciel_Szczegóły stół z Identyfikator_nauczyciela jako klucz podstawowy za pomocą instrukcji 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 );
Poniższe zapytania SQL wstawiają rekord nowych nauczycieli do powyższej tabeli za pomocą instrukcji 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);
Zobaczmy zapis powyższej tabeli za pomocą następującej instrukcji SELECT:
SELECT * FROM Teacher_Details;
Identyfikator_nauczyciela | Imię nauczyciela | Kwalifikacja nauczyciela | Nauczyciel_Wiek | Nauczyciel_Wywiad_Oceny |
---|---|---|---|---|
101 | Anuj | B.tech | 20 | 88 |
102 | Ramana | MCA | 24 | ZERO |
104 | Shyam | BBA | 19 | 92 |
107 | Wikasz | B.tech | 20 | ZERO |
111 | Monu | MBA | dwadzieścia jeden | ZERO |
114 | Jonesa | B.tech | 18 | 93 |
121 | Włosy | BCA | 20 | 97 |
123 | Divya | B.tech | dwadzieścia jeden | ZERO |
128 | Hemant | MBA | 23 | 90 |
130 | Nidhi | BBA | 20 | 88 |
132 | Priya | MBA | 22 | ZERO |
138 | Mohit | MCA | dwadzieścia jeden | 92 |
Poniższe zapytanie zlicza całkowite wartości kolumny Teacher_Age z tabeli Teacher_Details:
SELECT COUNT (Teacher_Age) AS Total_Teachers_Age_Column FROM Teacher_Details;
Wyjście:
Wynikiem powyższego zapytania SELECT jest dwanaście, ponieważ Nauczyciel_Wiek pole nie zawiera żadnej wartości NULL.
Poniższe zapytanie zlicza całkowite wartości Teacher_Interview_Column z powyższej tabeli:
SELECT COUNT (Teacher_Interview_Marks) AS Total_Teachers_Interview_Marks FROM Teacher_Details;
To zapytanie wyświetli na ekranie poniższe dane wyjściowe:
Wynikiem powyższego zapytania SELECT jest 7, ponieważ dwie pięć komórek kolumny Teacher_Interview_Marks zawiera NULL. I te pięć wartości NULL jest wykluczonych. Dlatego zapytanie SELECT wyświetla w wyniku 7 zamiast 12.
Co to jest funkcja Count(*)?
Jest to również podobne do funkcji Count, ale jedyną różnicą jest to, że wyświetla również liczbę wartości NULL z tabeli.
Poniżej podana jest składnia funkcji Count (*):
SELECT COUNT(*) FROM Name_of_Table;
Przykład:
Weźmy powyższe Teacher_Details:
Identyfikator_nauczyciela | Imię nauczyciela | Kwalifikacja nauczyciela | Nauczyciel_Wiek | Nauczyciel_Wywiad_Oceny |
---|---|---|---|---|
101 | Anuj | B.tech | 20 | 88 |
102 | Ramana | MCA | 24 | ZERO |
104 | Shyam | BBA | 19 | 92 |
107 | Wikasz | B.tech | 20 | ZERO |
111 | Monu | MBA | dwadzieścia jeden | ZERO |
114 | Jonesa | B.tech | 18 | 93 |
121 | Włosy | BCA | 20 | 97 |
123 | Divya | B.tech | dwadzieścia jeden | ZERO |
128 | Hemant | MBA | 23 | 90 |
130 | Nidhi | BBA | 20 | 88 |
132 | Priya | MBA | 22 | ZERO |
138 | Mohit | MCA | dwadzieścia jeden | 92 |
Poniższe zapytanie zlicza całkowite wartości Total_Interview_Marks kolumna z powyższej tabeli:
SELECT COUNT (*) FROM Teacher_Details;
Powyższe zapytanie SELECT z COUNT(*) da na ekranie poniższy wynik:
Co to jest DISTINCT w SQL?
Słowo kluczowe DISTINCT pokazuje w wyniku unikalne wiersze kolumny z tabeli.
Poniżej podana jest składnia słowa kluczowego DISTINCT:
SELECT DISTINCT Name_of_Column FROM Table_Name WHERE [condition];
W zapytaniu DISTINCT możemy także zdefiniować warunek w klauzuli WHERE umożliwiający pobranie określonych wartości.
Przykład DISTINCT
Najpierw utwórz nową tabelę, na której ma zostać uruchomione słowo kluczowe Distinct.
Następujące zapytanie tworzy plik Rower_Szczegóły tabelę za pomocą instrukcji CREATE TABLE:
CREATE TABLE Bike_Details ( Bike_Name varchar(100), Bike_Model INT, Bike_Color varchar(50), Bike_Cost INT );
Poniższe zapytania SQL wstawiają do tabeli rekord nowych rowerów za pomocą instrukcji 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);
Rekordy powyższej tabeli są wyświetlane przy użyciu następującego zapytania SELECT:
SELECT * FROM Bike_Details;
Nazwa_roweru | Model_roweru | Rower_Kolor | Koszt_roweru |
---|---|---|---|
KTM DUKE | 2019 | Czarny | 185000 |
Królewskiego Enfielda | 2020 | Czarny | 165000 |
Naciskać | 2018 | Czerwony | 90000 |
Apacz | 2020 | Biały | 85 000 |
Na żywo | 2018 | Czarny | 80 000 |
KTM RC | 2020 | Czerwony | 195 000 |
Tabela: Rower_Szczegóły
Poniższe zapytanie SQL różni się od powyższych wartości kolumny Kolor Rower_Szczegóły tabela:
SELECT DISTINCT Bike_Color FROM Bikes ;
Wyjście:
Jak widzimy, Czarny, Czerwony i Biały to trzy różne wartości w kolumnie Bike_Color.
Funkcja zliczania ze słowem kluczowym DISTINCT
Słowo kluczowe DISTINCT z funkcją COUNT w zapytaniu SELECT wyświetla liczbę unikalnych danych pola z tabeli.
Poniżej podano składnię funkcji Count ze słowem kluczowym DISTINCT:
SELECT COUNT(DISTINCT (Column_Name) FROM table_name WHERE [condition];
Przykłady funkcji Count ze słowem kluczowym DISTINCT
Poniższe dwa przykłady SQL wyjaśnią wykonanie funkcji Count ze słowem kluczowym Distinct:
Przykład 1:
Poniższe zapytanie tworzy tabelę College_Students z czterema polami:
CREATE TABLE College_Students ( Student_Id INT NOT NULL, Student_Name Varchar (40), Student_Age INT, Student_Marks INT );
Następujące zapytanie INSERT wstawia rekord studentów do tabeli 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);
Poniższe zapytanie wyświetla szczegóły tabeli College_Students:
SELECT * FROM College_Students;
Legitymacja studencka | Imię_ucznia | Wiek_ucznia | Oceny_uczniów |
---|---|---|---|
101 | Akhil | 28 | 95 |
102 | Abhay | 27 | 86 |
103 | Soria | 26 | 79 |
104 | Abhiszek | 27 | 66 |
105 | Hrithik | 26 | 79 |
106 | Yash | 29 | 88 |
Tabela: Studenci_kolegium
Następująca instrukcja SQL zlicza unikalne wartości kolumny Student_Age z tabeli College_Students:
SELECT COUNT (DISTINCT (Student_Age) AS Unique_Age FROM College_Students ;
To zapytanie wyświetli w wynikach poniższą tabelę:
Dane wyjściowe pokazują cztery wartości, ponieważ kolumna Teacher_age zawiera 4 unikalne wartości.
Przykład 2:
Poniższe zapytanie tworzy tabelę IT_Employee z czterema polami:
CREATE TABLE IT_Employee ( Employee_Id INT NOT NULL, Employee_Name Varchar (40), Emp_Age INT, Employee_Salary INT );
Następujące zapytanie INSERT wstawia rekord pracowników IT do tabeli IT_Employee:
przykłady dfa
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);
Poniższe zapytanie wyświetla szczegóły tabeli IT_Employee:
SELECT * FROM IT_Employee;
Dowód pracownika | Imię i nazwisko pracownika | Wiek_pracownika | Pracownik_Wynagrodzenie |
---|---|---|---|
101 | Akhil | 28 | 25000 |
102 | Abhay | 27 | 26000 |
103 | Soria | 26 | 29000 |
104 | Abhiszek | 27 | 26000 |
105 | Hrithik | 26 | 29000 |
106 | Yash | 29 | 25000 |
Tabela: IT_Pracownik
Poniższa instrukcja SQL zlicza tylko unikalne wartości kolumny Emp_Age z powyższej tabeli IT_Employee:
SELECT COUNT (DISTINCT (Employee_Age)) AS Unique_Age FROM IT_Employee ;
To zapytanie da poniższe dane wyjściowe: