mysql count count distinct with examples
Dowiedz się o zastosowaniach różnych form funkcji MySQL COUNT z przykładami:
COUNT to prosta funkcja agregująca, ale bardzo skuteczna i szeroko stosowana. Mówiąc bardzo prosto, służy do zliczania liczby wierszy w odniesieniu do danego zapytania SELECT i kryteriów.
W tym samouczku wyjaśnimy składnię i użycie prostych funkcji COUNT, COUNT z warunkami, COUNT z DISTINCT, COUNT z GROUP BY itp.
Czego się nauczysz:
LICZBA różnych typów MySQL
Rodzaj | Opis | Składnia |
---|---|---|
LICZYĆ(*) | Funkcja COUNT (*) zwraca nie. wierszy pobranych przez instrukcję SELECT, w tym wiersze zawierające wartości NULL i Duplicate | WYBIERZ LICZBĘ (*) Z {tableName} |
COUNT (wyrażenie) | COUNT (wyrażenie) policzyłoby wartość, w której wyrażenie nie jest null. Wyrażenie może być czymś prostym, na przykład nazwą kolumny lub złożonym wyrażeniem, takim jak funkcja IF. | WYBIERZ LICZBĘ (wyrażenie) z {tableName} |
COUNT (wyrażenie DISTINCT) | COUNT (wyrażenie DISTINCT) - słowo kluczowe DISTINCT spowodowałoby zliczanie tylko unikalnych wartości innych niż null w wyrażeniu. Na przykład - COUNT (DISTINCT customerName) - policzy tylko wiersze z różnymi wartościami nazwy klienta | SELECT COUNT (DISTINCT expression) from {tableName} |
Przykłady MySQL COUNT
Dane testowe
W przykładach dla funkcji MySQL COUNT użylibyśmy poniższych tabel i danych.
Tabele:
# 1) Product_Details
java j2ee pytania do wywiadów i odpowiedzi dla doświadczonych
Przechowuje szczegóły różnych produktów w sklepie
- product_id - INT
- nazwa_produktu - VARCHAR
- cena - DECIMAL
- category_id - INT (KLUCZ OBCY - identyfikator z tabeli Category_Details)
# 2) Category_Details:
- category_id: INT
- nazwa_kategorii: VARCHAR
Utwórzmy tabele i wstawmy fikcyjne dane, korzystając z poniższych zapytań:
CREATE TABLE `product_details` ( `product_id` int NOT NULL, `product_name` varchar(100), `price` decimal(5,2), `category_id` int, FOREIGN KEY (category_id) REFERENCES category_details(category_id), PRIMARY KEY(product_id) ) CREATE TABLE `category_details` ( `category_id` int NOT NULL, `category_name` varchar(100), PRIMARY KEY(category_id) ) INSERT INTO `category_details` (`category_id`,`category_name`) VALUES (1,'FMCG'),(2,'FURNITURE'),(3,'FASHION'),(4,'APPLIANCES'),(5,'ELECTRONICS'); INSERT INTO `product_details` (`product_id`,`product_name`,`price`,`category_id`) VALUES (1,'Biscuits',0.5,1),(2,'Chocolates',1,1), (3, 'Washing Powder',5,1),(4, 'Apple IPhone', 500,5), (5, 'Batteries',2,5),(6,'Floor cleaner',2.5,1),(7,'Jeans- Levis',100,1),(8,'Mixer grinder',50,4),(9,'Capsicum',2,1),(10,'Sugar',1,1),(11,'Study Table',50,2);
Proszę odnieść się do obrazów tabel z danymi testowymi, jak utworzono powyżej.
Product_Details Table
Category_Details Table
Proste COUNT
W tej sekcji zobaczymy funkcję COUNT w najbardziej uproszczony sposób.
Użyjemy funkcji COUNT, aby zwrócić liczbę wierszy bez żadnych kontroli NULL lub DISTINCT.
SELECT COUNT(*) FROM product_details;
Wynik:
LICZYĆ(*) |
---|
jedenaście |
W przypadku powyższego zapytania otrzymamy po prostu liczbę wierszy zwróconych w instrukcji select.
LICZBA Z warunkami
Teraz użyjemy funkcji COUNT z warunkami lub wartościami kolumn.
Przykład: Załóżmy, że chcemy policzyć nie. wierszy, w których nie ma wartości innych niż null dla nazw produktów.
Możemy dodać product_name (lub dowolną podaną nazwę kolumny) jako wyrażenie w funkcji COUNT, co spowodowałoby liczbę wierszy mających NON NULL product_name.
SELECT COUNT(product_name) FROM product_details;
W tym przypadku wynik będzie wynosił 11 (ponieważ wszystkie dane testowe mają już wartości w kolumnie nazwa_produktu)
Wynik:
COUNT (nazwa_produktu) |
---|
jedenaście |
Dodajmy nowy wiersz z wartością NULL dla nazwa_produktu.
INSERT INTO `product_details` (`product_id`,`product_name`,`price`,`category_id`) VALUES (12,NULL,0.5,1);
SELECT COUNT(product_name) from product_details;
Powyższe zapytanie COUNT zwróci liczbę wszystkich wierszy z wartością NON NULL product_name.
Ponieważ wstawiliśmy wiersz z wartością NULL nazwa_produktu, to nie zostanie zwrócone w wynikach. Więc wynik będzie nadal 11 wierszy.
Wynik:
COUNT (nazwa_produktu) |
---|
jedenaście |
COUNT Z DISTINCT
W poprzednich przykładach używaliśmy funkcji COUNT z wyrażeniem. Możemy również połączyć wyrażenie z poleceniem DISTINCT, aby uzyskać wszystkie wartości NON NULL, które również są UNIQUE.
Spróbujmy pobrać DISTINCT category_id z tabeli product_details.
SELECT COUNT(DISTINCT category_id) from product_details;
Wynik:
COUNT (DISTINCT category_id) |
---|
4 |
Jak widać powyżej - wynik wynosi 4, co oznacza łącznie nie. identyfikatorów kategorii w tabeli product_details.
LICZ Z GROUP BY
Spójrzmy na przykład, w którym chcemy użyć COUNT razem z GROUP BY. Jest to ważna kombinacja, w której możemy uzyskać LICZBĘ względem zgrupowanej kolumny i przeanalizować dane w zależności od różnych wartości docelowej kolumny zgrupowanej.
Na przykład: Znajdź nr. produktów w każdej kategorii z tabeli product_details.
SELECT category_id, COUNT(*) FROM product_details GROUP BY category_id;
category_id | LICZYĆ(*) |
---|---|
1 | 7 |
dwa | 1 |
4 | 1 |
5 | dwa |
Jak widać powyżej, przy każdym category_id kolumna COUNT (*) przedstawia liczbę wierszy należących do każdego category_id.
LICZ SIĘ Z JEŻELI
Zobaczmy przykład użycia warunku JEŻELI w funkcji LICZBA. Możemy umieścić wyrażenie JEŻELI wewnątrz funkcji LICZBA i ustawić wartość NULL dla warunku fałszywego i dowolną wartość inną niż null dla warunku prawdziwego.
Każda wartość NON NULL byłaby liczona jako pojedynczy wiersz z funkcją COUNT.
Na przykład: Użyj funkcji LICZBA, aby znaleźć wszystkie produkty w przedziale cenowym 20 $.
SELECT COUNT(IF(price >0 AND price<20, 1, NULL)) AS count_less_than_20 FROM product_details;
Wynik:
count_less_than_20 |
---|
7 |
W powyższym zapytaniu otrzymaliśmy LICZBĘ wszystkich produktów, których przedział cenowy zawiera się między 0 a 20. Dla warunku FALSE ustawiliśmy wartość NULL, która nie jest liczona, gdy wiersz jest oceniany dla różnych wartości kolumn .
LICZ SIĘ Z JOINS
COUNT może być również używane z instrukcjami JOIN. Ponieważ COUNT dotyczy nie. wierszy, może być używany z dowolną kombinacją zapytania działającego na pojedynczej tabeli lub wielu tabelach przy użyciu JOINS.
Przykład: Dołącz do tabeli product_details i category_details i znajdź liczbę według nazwa_kategorii z tabeli product_details.
SELECT category_name, COUNT(category_name) from product_details pd INNER JOIN category_details cd ON cd.category_id = pd.category_id GROUP BY category_name;
Wynik:
Nazwa Kategorii | COUNT (nazwa_kategorii) |
---|---|
FMCG | 7 |
MEBLE | 1 |
URZĄDZENIA | 1 |
ELEKTRONIKA | dwa |
Wskazówka i sztuczka
Korzystanie z aliasu kolumny dla kolumny, która wyświetla wynik funkcji COUNT: Możemy użyć aliasu kolumny wraz z funkcją COUNT, aby mieć zdefiniowane przez użytkownika nazwy kolumn dla kolumny wyświetlającej wyniki funkcji COUNT.
Na przykład: Załóżmy, że chcemy policzyć liczbę kategorii w tabeli category_details i nazwać wynikową kolumnę jako category_count, możemy użyć poniższego zapytania:
SELECT COUNT(*) as category_count from category_details;
Wynik:
category_count |
---|
5 |
Często Zadawane Pytania
Q # 1) Jak używać funkcji COUNT w MySQL?
Odpowiedź: Funkcja COUNT to funkcja agregująca, której można używać na 3 sposoby.
- LICZBA (*) - Spowoduje to zliczenie wszystkich wierszy zwróconych przez WYBIERZ KWERY.
- COUNT (wyrażenie) - Spowoduje to zliczenie wszystkich wartości NON NULL dla wyrażenia.
- COUNT (wyrażenie DISTINCT) - Spowoduje to zliczenie wszystkich wartości NON NULL i UNIQUE względem wyrażenia.
P # 2) Jaka jest różnica między Count (*) i Count (1) w SQL?
Odpowiedź: Obie instrukcje zachowują się identycznie. Z definicji LICZBA w MySQL wynika, że wszystko w nawiasach () jest wyrażeniem - a każda wartość NON NULL będzie liczona jako 1.
W tym przypadku zarówno *, jak i 1 są traktowane jako NON NULL i zwracany jest ten sam wynik, tj. Wynik obu poniższych zapytań byłby taki sam.
SELECT COUNT(*) from product_details; SELECT COUNT(1) from product_details;
Wniosek
W tym samouczku dowiedzieliśmy się o funkcji COUNT i różnych odmianach udostępnianych przez MySQL.
Zobaczyliśmy również, jak możemy używać funkcji COUNT w różnych scenariuszach, takich jak łączenie funkcji COUNT z GROUP BY i pisanie funkcji JEŻELI w funkcji LICZNIK.
Funkcja COUNT jest jedną z najważniejszych i najczęściej używanych funkcji w MySQL i jest w dużej mierze używana do agregowania danych w zależności od określonych warunków dla jednej lub wielu tabel.
rekomendowane lektury
- MySQL ALTER TABLE - Jak dodać kolumnę do tabeli w MySQL
- Funkcje MySQL CONCAT i GROUP_CONCAT z przykładami
- MySQL CREATE USER: Jak utworzyć nowego użytkownika w MySQL
- MySQL JOIN Tutorial: wewnętrzny, zewnętrzny, krzyżowy, lewy, prawy i własny
- MySQL LIKE - samouczek z przykładami składni i użycia
- Klauzula MySQL GROUP BY - samouczek z przykładami
- Funkcje MySQL Substring i Substring_Index z przykładami
- MySQL Create View - samouczek z przykładami kodu