mysql count count distinct with examples
Dozviete sa tu o príkladoch použitia rôznych foriem funkcie MySQL COUNT:
COUNT je jednoduchá agregačná funkcia, ale veľmi efektívna a široko používaná. Veľmi jednoduchými slovami sa používa na POČÍTANIE počtu riadkov podľa daného dotazu SELECT a kritérií.
Tento tutoriál vysvetlí syntax a použitie jednoduchých COUNT, COUNT s podmienkami, COUNT s DISTINCT, COUNT s GROUP BY atď.
Čo sa dozviete:
Rôzne typy počtu MySQL
Typ | Popis | Syntax |
---|---|---|
COUNT (*) | Funkcia COUNT (*) vráti číslo. riadkov získaných príkazom SELECT vrátane riadkov obsahujúcich hodnoty NULL a Duplicate | VYBERTE POČET (*) Z {tabuľkyName} |
COUNT (výraz) | COUNT (výraz) by spočítal hodnotu, kde výraz nemá hodnotu null. Výraz môže byť jednoduchý, napríklad názov stĺpca alebo zložitý výraz, napríklad funkcia IF. | VYBERTE COUNT (výraz) z {tableName} |
COUNT (DISTINCT výraz) | POČET (výraz DISTINCT) - kľúčové slovo DISTINCT by viedlo k započítaniu iba jedinečných nenulových hodnôt do výrazu. Napríklad - COUNT (DISTINCT customerName) - bude počítať iba riadky, ktoré majú odlišné hodnoty pre meno zákazníka | VYBERTE POČET (DISTINCT výraz) z {tableName} |
Príklady MySQL COUNT
Skúšobné údaje
Nasledujúce tabuľky a údaje by sme použili ako príklady pre funkciu MySQL COUNT.
Tabuľky:
# 1) Podrobnosti o produkte
Ukladá v obchode podrobnosti o rôznych výrobkoch
- product_id - INT
- product_name - VARCHAR
- cena - DESATINNÁ
- category_id - INT (ZAHRANIČNÝ KLÍČ - ID z tabuľky Category_Details)
# 2) Kategória_Podrobnosti:
- category_id: INT
- názov_kategórie: VARCHAR
Vytvorme tabuľky a vložte fiktívne údaje pomocou dotazov uvedených nižšie:
ako nájsť xpath v tj
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);
Prečítajte si obrázky tabuliek s testovacími údajmi, ako boli vytvorené vyššie.
Tabuľka s podrobnosťami o produkte
Tabuľka s podrobnosťami o kategórii
Jednoduché COUNT
V tejto časti uvidíme funkciu COUNT najjednoduchším spôsobom.
Použijeme COUNT na vrátenie počtu riadkov bez akejkoľvek kontroly NULL alebo DISTINCT.
SELECT COUNT(*) FROM product_details;
Výkon:
COUNT (*) |
---|
jedenásť |
S vyššie uvedeným dotazom dostaneme iba počet riadkov vrátených oproti príkazu select.
COUNT s podmienkami
Teraz použijeme funkciu COUNT s podmienkami alebo hodnotami stĺpcov.
Príklad: Predpokladajme, že chceme počítať číslo riadkov, kde neexistujú nenulové hodnoty pre názvy produktov.
Ako výraz vo funkcii COUNT môžeme pridať product_name (alebo akýkoľvek daný názov stĺpca), čo by potom viedlo k počtu riadkov, ktoré budú mať NON NULL product_name riadky.
SELECT COUNT(product_name) FROM product_details;
V takom prípade bude výstup 11 (pretože všetky údaje o teste už majú hodnoty pre stĺpec product_name)
Výkon:
ako otvoriť súbor jar systému Windows 10
COUNT (product_name) |
---|
jedenásť |
Pridajme nový riadok s NULL hodnotou pre product_name.
INSERT INTO `product_details` (`product_id`,`product_name`,`price`,`category_id`) VALUES (12,NULL,0.5,1);
SELECT COUNT(product_name) from product_details;
Vyššie uvedený COUNT dopyt vráti počet všetkých riadkov, ktoré majú NON NULL product_name.
Pretože sme vložili riadok s NULL product_name, vo výsledkoch sa to nevráti. Takže výstup by bol stále 11 riadkov.
Výkon:
COUNT (product_name) |
---|
jedenásť |
POČET S DISTINCT
V predchádzajúcich príkladoch sme použili funkciu COUNT s výrazom. Výraz môžeme tiež skombinovať s príkazom DISTINCT, aby sme získali všetky hodnoty NON NULL, ktoré sú taktiež JEDINEČNÉ.
Skúsme získať DISTINCT category_id z tabuľky product_details.
SELECT COUNT(DISTINCT category_id) from product_details;
Výkon:
COUNT (DISTINCT category_id) |
---|
4 |
Ako vidíte vyššie - výstup je 4, čo predstavuje celkové č. category_id v tabuľke product_details.
POČET S SKUPINOU PODĽA
Pozrime sa na príklad, kde chceme použiť COUNT spolu s GROUP BY. Toto je dôležitá kombinácia, kde môžeme získať COUNT oproti zoskupenému stĺpcu a analyzovať údaje v závislosti od rôznych hodnôt cieľového zoskupeného stĺpca.
Napríklad: Nájdite číslo produktov v každej kategórii z tabuľky product_details.
SELECT category_id, COUNT(*) FROM product_details GROUP BY category_id;
id_kategórie | COUNT (*) |
---|---|
jeden | 7 |
dva | jeden |
4 | jeden |
5 | dva |
Ako vidíme vyššie, oproti každému category_id predstavuje stĺpec COUNT (*) počet riadkov patriacich ku každému category_id.
POČET S IF
Pozrime sa na príklad použitia podmienky IF vo funkcii COUNT. Môžeme umiestniť IF výraz do funkcie COUNT a nastaviť hodnotu na NULL pre nepravdivú podmienku a akúkoľvek nenulovú hodnotu pre pravdivú podmienku.
prevodník z youtube na mp3 žiadny vírus
Každá hodnota NON NULL by sa počítala ako jeden riadok bez funkcie COUNT.
Napríklad: Pomocou funkcie COUNT nájdite všetky produkty v cenovom rozpätí 20 $.
SELECT COUNT(IF(price >0 AND price<20, 1, NULL)) AS count_less_than_20 FROM product_details;
Výkon:
count_less_than_20 |
---|
7 |
Vo vyššie uvedenom dotaze sme získali COUNT všetkých produktov, ktorých cenové rozpätie je medzi 0 a 20. Pre podmienku FALSE sme nastavili hodnotu na NULL, ktorá sa nezapočítava, keď sa riadok vyhodnotí pre rôzne hodnoty stĺpca .
POČET S PRIPOJENIAMI
COUNT je možné použiť aj s príkazmi JOIN. Pretože COUNT sa vzťahuje na č. riadkov, je možné ho použiť s ľubovoľnou kombináciou dotazu pracujúceho na jednej alebo viacerých tabuľkách pomocou JOINS.
Príklad: Pripojte sa k tabuľke product_details aj category_details a nájdite počet podľa kategórie_name z tabuľky 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;
Výkon:
meno kategórie | COUNT (category_name) |
---|---|
FMCG | 7 |
NÁBYTOK | jeden |
SPOTREBIČE | jeden |
ELEKTRONIKA | dva |
Tip a trik
Použitie aliasu stĺpca pre stĺpec, ktorý zobrazuje výsledok funkcie COUNT: Alias stĺpca môžeme použiť spolu s funkciou COUNT, aby sme mali používateľom definované názvy stĺpcov pre stĺpec zobrazujúci výsledky funkcie COUNT.
Napríklad: Predpokladajme, že chceme spočítať počet kategórií v tabuľke category_details a pomenovať výsledný stĺpec ako category_count, môžeme teda použiť pod dopyt:
SELECT COUNT(*) as category_count from category_details;
Výkon:
kategória_počet |
---|
5 |
často kladené otázky
Otázka č. 1) Ako môžem použiť funkciu COUNT v MySQL?
Odpoveď: Funkcia COUNT je agregačná funkcia, ktorú je možné použiť 3 spôsobmi.
- COUNT (*) - Takto by sa započítali všetky riadky vrátené príkazom SELECT QUERY.
- COUNT (výraz) - To by POČÍTAL všetky hodnoty NON NULL pre výraz.
- POČET (výraz DISTINCT) - Týmto by sa do výrazu započítali všetky NON NULL a UNIQUE hodnoty.
Otázka 2) Aký je rozdiel medzi Count (*) a Count (1) v SQL?
Odpoveď: Obidve výroky sa správajú rovnako. Z definície COUNT v MySQL je čokoľvek v zátvorkách () výraz - a akákoľvek NON NULL hodnota by sa počítala ako 1.
Takže v tomto prípade sa s * aj 1 zaobchádza ako s NON NULL a vráti sa rovnaký výsledok, t. J. Výsledok oboch dotazov uvedených nižšie by bol rovnaký.
SELECT COUNT(*) from product_details; SELECT COUNT(1) from product_details;
Záver
V tomto tutoriáli sme sa dozvedeli o funkcii COUNT a rôznych variáciách poskytovaných MySQL.
Tiež sme videli, ako môžeme použiť COUNT v rôznych scenároch, ako je kombinácia COUNT s GROUP BY a zápis funkcie IF v rámci funkcie COUNT.
Funkcia COUNT je jednou z najdôležitejších a najbežnejšie používaných funkcií v MySQL a vo veľkej miere sa používa na agregáciu údajov v závislosti od zadaných podmienok pre jednu alebo viac tabuliek.
Odporúčané čítanie
- ALS TABUĽKA - Ako pridať stĺpec do tabuľky v MySQL
- Funkcie MySQL CONCAT a GROUP_CONCAT s príkladmi
- VYTVORIŤ UŽÍVATEĽA MySQL: Ako vytvoriť nového používateľa v MySQL
- Výukový program MySQL JOIN: Vnútorný, Vonkajší, Krížový, Ľavý, Pravý a Ja
- MySQL LIKE - Výučba so syntaxou a príkladmi použitia
- Klauzula MySQL GROUP BY - návod s príkladmi
- Funkcie MySQL Substring a Substring_Index s príkladmi
- Výukový program na vytvorenie prehľadu MySQL s príkladmi kódu