mysql count count distinct with examples
Spoznajte načine uporabe različnih oblik funkcije MySQL COUNT s primeri:
COUNT je preprosta sestavljena funkcija, vendar zelo učinkovita in široko uporabljena. Z zelo preprostimi besedami se uporablja za štetje števila vrstic glede na določeno poizvedbo in merila SELECT.
Ta vadnica bo razložila sintakso in uporabo preprostega COUNT, COUNT s pogoji, COUNT z DISTINCT, COUNT z GROUP BY itd.
Kaj se boste naučili:
Različne vrste štetja MySQL
Tip | Opis | Sintaksa |
---|---|---|
ŠTEVILO (*) | Funkcija COUNT (*) vrne št. vrstic, pridobljenih s stavkom SELECT, vključno z vrsticami, ki vsebujejo NULL in podvojene vrednosti | IZBERITE ŠTEVILO (*) IZ {tableName} |
COUNT (izraz) | COUNT (izraz) bi štel vrednost, kjer izraz ni nič. Izraz je lahko nekaj preprostega, na primer ime stolpca ali kompleksen izraz, kot je funkcija IF. | SELECT COUNT (Expression) iz {tableName} |
COUNT (DISTINCT izraz) | COUNT (izraz DISTINCT) - Ključna beseda DISTINCT bi v izrazu štela samo enolične neveljavne vrednosti. Na primer - COUNT (DISTINCT customerName) - šteje samo vrstice z različnimi vrednostmi za ime stranke | SELECT COUNT (DISTINCT izraz) iz {tableName} |
MySQL COUNT Primeri
Podatki o preskusu
Za primere funkcije MySQL COUNT bi uporabili naslednje tabele in podatke.
Tabele:
# 1) Podrobnosti o izdelku
V trgovini shrani podrobnosti o različnih izdelkih
- product_id - INT
- ime_izdelka - VARCHAR
- cena - DECIMALNA
- category_id - INT (ZUNANJI KLJUČ - id iz tabele Category_Details)
# 2) Podrobnosti o kategoriji:
- id_kategorije: INT
- ime_kategorije: VARCHAR
Ustvarimo tabele in vstavimo lažne podatke s spodnjimi poizvedbami:
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);
Oglejte si slike tabel s testnimi podatki, kot so ustvarjene zgoraj.
Tabela podrobnosti o izdelku
Tabela podrobnosti o kategoriji
Preprosto COUNT
V tem poglavju bomo funkcijo COUNT videli na najbolj poenostavljen način.
Z COUNT bomo vrnili število vrstic brez preverjanj NULL ali DISTINCT.
SELECT COUNT(*) FROM product_details;
Izhod:
ŠTEVILO (*) |
---|
enajst |
Z zgornjo poizvedbo bomo dobili le število vrstic, vrnjenih proti stavku select.
ŠTEVITE s pogoji
Zdaj bomo funkcijo COUNT uporabljali s pogoji ali vrednostmi stolpcev.
Primer: Recimo, da želimo šteti št. vrstic, kjer za imena izdelkov ni neveljavnih vrednosti.
Kot izraz v funkciji COUNT lahko dodamo ime_izdelka (ali katero koli dano ime stolpca), ki bo nato rezultiral s številom vrstic z NON NULL vrsticami z imenom_proizvoda.
SELECT COUNT(product_name) FROM product_details;
V tem primeru bo izhod 11 (ker vsi preskusni podatki že imajo vrednosti za stolpec ime_ izdelka)
Izhod:
COUNT (ime_izdelka) |
---|
enajst |
Dodajmo novo vrstico z NULL vrednostjo za ime_proizvoda.
INSERT INTO `product_details` (`product_id`,`product_name`,`price`,`category_id`) VALUES (12,NULL,0.5,1);
SELECT COUNT(product_name) from product_details;
Zgornja COUNT poizvedba bo vrnila število vseh vrstic z NON NULL ime_izdelka.
Ker smo vstavili vrstico z NULL ime_izdelka, to v rezultatih ne bo vrnjeno. Izhod bi bil torej še vedno 11 vrstic.
Izhod:
COUNT (ime_izdelka) |
---|
enajst |
ŠTETITE Z DISTINCTOM
V prejšnjih primerih smo uporabili funkcijo COUNT z izrazom. Izraz lahko kombiniramo tudi z ukazom DISTINCT, da dobimo vse vrednosti NON NULL, ki so prav tako UNIKATNE.
Poskusimo dobiti DISTINCT category_id iz tabele product_details.
SELECT COUNT(DISTINCT category_id) from product_details;
Izhod:
COUNT (DISTINCT kategorija_id) |
---|
4. |
Kot lahko vidite zgoraj - izhod je 4, kar predstavlja skupno št. kategorije_id v tabeli product_details.
PREŠTITE Z GROUP BY
Oglejmo si primer, kjer želimo uporabiti COUNT skupaj z GROUP BY. To je pomembna kombinacija, pri kateri lahko dobimo COUNT proti združenemu stolpcu in analiziramo podatke glede na različne vrednosti ciljnega združenega stolpca.
Na primer: Poiščite št. izdelkov glede na vsako kategorijo iz tabele product_details.
SELECT category_id, COUNT(*) FROM product_details GROUP BY category_id;
id_kategorije | ŠTEVILO (*) |
---|---|
1. | 7. |
dva | 1. |
4. | 1. |
5. | dva |
Kot lahko vidimo zgoraj, stolpec COUNT (*) za vsako kategorijo_id predstavlja število vrstic, ki pripadajo posamezni kategoriji_id.
PREŠTITE Z IF
Oglejmo si primer uporabe pogoja IF znotraj funkcije COUNT. Izraz IF lahko postavimo v funkcijo COUNT in nastavimo vrednost NULL za false pogoj in katero koli ne-null vrednost za resnično stanje.
Vsaka NON NULL vrednost bi se štela kot enovrstna funkcija w.r.t COUNT.
Na primer: S funkcijo COUNT lahko poiščete vse izdelke v cenovnem razponu 20 USD.
SELECT COUNT(IF(price >0 AND price<20, 1, NULL)) AS count_less_than_20 FROM product_details;
Izhod:
count_less_than_20 |
---|
7. |
V zgornji poizvedbi smo dobili COUNT vseh izdelkov, katerih cenovni razpon je med 0 in 20. Za pogoj FALSE smo pri vrednotenju vrstice za različne vrednosti stolpcev nastavili vrednost NULL, ki se ne šteje. .
ŠTETITE S PRIDRUŽITEV
COUNT je mogoče uporabiti tudi s stavki JOIN. Ker velja COUNT za št. vrstic, se lahko uporablja s katero koli kombinacijo poizvedbe, ki deluje v eni tabeli ali več tabelah z uporabo JOINS.
Primer: Pridružite se tabeli product_details in category_details in v tabeli product_details poiščite štetje po imeni kategorije.
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;
Izhod:
ime_kategorije | COUNT (ime_kategorije) |
---|---|
FMCG | 7. |
POHIŠTVO | 1. |
APARATI | 1. |
ELEKTRONIKA | dva |
Nasvet in trik
Uporaba vzdevka stolpca za stolpec, ki prikazuje rezultat funkcije COUNT: Lahko uporabimo vzdevek stolpca skupaj s funkcijo COUNT, da imamo uporabniško določena imena stolpcev za stolpec, ki prikazuje rezultate funkcije COUNT.
najboljši ide za python na mac
Na primer: Recimo, da želimo v tabeli category_details prešteti število kategorij in nastali stolpec poimenovati kot count_count, lahko uporabimo spodnjo poizvedbo:
SELECT COUNT(*) as category_count from category_details;
Izhod:
kategorija_število |
---|
5. |
Pogosto zastavljena vprašanja
V # 1) Kako uporabim funkcijo COUNT v MySQL?
Odgovor: Funkcija COUNT je sestavljena funkcija, ki jo lahko uporabljate na 3 načine.
- ŠTEVILO (*) - Tako bi prešteli vse vrstice, ki jih vrne SELECT QUERY.
- ŠTEVILO (izraz) - To bi preštelo vse NON NULL vrednosti izraza.
- COUNT (izraz DISTINCT) - To bi upoštevalo vse vrednosti NON NULL in UNIQUE proti izrazu.
V # 2) Kakšna je razlika med Count (*) in Count (1) v SQL?
Odgovor: Obe izjavi se obnašata na enak način. Iz MySQL-ove definicije COUNT je vse v oklepajih () izraz - in vsaka NON NULL vrednost se šteje kot 1.
V tem primeru se oba * in 1 obravnavata kot NON NULL in vrne se enak rezultat, tj. Rezultat obeh spodnjih poizvedb bi bil enak.
SELECT COUNT(*) from product_details; SELECT COUNT(1) from product_details;
Zaključek
V tej vadnici smo spoznali funkcijo COUNT in različne različice, ki jih ponuja MySQL.
Videli smo tudi, kako lahko uporabimo COUNT v različnih scenarijih, na primer kombiniranje COUNT z GROUP BY in pisanje funkcije IF znotraj funkcije COUNT.
Funkcija COUNT je ena najpomembnejših in najpogosteje uporabljenih funkcij v MySQL in se v veliki meri uporablja za združevanje podatkov, odvisno od določenih pogojev za eno ali več tabel.
Priporočeno branje
- MySQL ALTER TABLE - Kako dodati stolpec v tabelo v MySQL
- Funkcije MySQL CONCAT in GROUP_CONCAT s primeri
- Ustvari uporabnika MySQL: Kako ustvariti novega uporabnika v MySQL
- Vadnica za MySQL JOIN: Notranja, zunanja, križna, leva, desna in lastna
- MySQL LIKE - Vadnica s primeri sintakse in uporabe
- Klavzula MySQL GROUP BY - Vadnica s primeri
- Funkcije podnizov in podnizov_Index MySQL s primeri
- Vadnica za ustvarjanje pogleda MySQL s primeri kode