mysql count count distinct with examples
Aflați despre utilizările diferitelor forme ale funcției MySQL COUNT cu exemple:
COUNT este o funcție agregată simplă, dar foarte eficientă și larg utilizată. În cuvinte foarte simple, este folosit pentru a COUNTĂ numărul de rânduri în raport cu o anumită interogare SELECT și criterii.
Acest tutorial va explica sintaxa și utilizarea COUNT simplu, COUNT cu condiții, COUNT cu DISTINCT, COUNT cu GROUP BY etc.
Ce veți învăța:
Diferite tipuri de cont MySQL
Tip | Descriere | Sintaxă |
---|---|---|
NUMARA(*) | Funcția COUNT (*) returnează nr. de rânduri recuperate de instrucțiunea SELECT inclusiv rânduri care conțin valori NULL și Duplicate | SELECTAȚI COUNT (*) DIN {tableName} |
COUNT (expresie) | COUNT (expresie) ar număra valoarea în care expresia nu este nulă. Expresia poate fi ceva simplu, cum ar fi un nume de coloană sau o expresie complexă, cum ar fi funcția IF. | SELECTAȚI COUNT (Expresie) din {tableName} |
COUNT (expresie DISTINCTĂ) | COUNT (expresie DISTINCT) - cuvântul cheie DISTINCT ar rezulta în contorizarea valorilor unice non-nule împotriva expresiei. De exemplu - COUNT (DISTINCT clientNume) - ar contoriza doar rândurile cu valori distincte pentru numele clientului | SELECT COUNT (expresie DISTINCTĂ) din {tableName} |
MySQL COUNT Exemple
Date de testare
Vom folosi următoarele tabele și date pentru exemple pentru funcția MySQL COUNT.
Mese:
# 1) Detalii_produs
Stochează detalii despre diverse produse dintr-un magazin
- product_id - INT
- product_name - VARCHAR
- preț - ZECIMAL
- category_id - INT (KEY STRĂINĂ - id din tabelul Category_Details)
# 2) Categorie_Detalii:
- category_id: INT
- nume_categorie: VARCHAR
Să creăm tabelele și să inserăm date fictive utilizând interogările de mai jos:
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);
Vă rugăm să consultați imaginile tabelelor cu datele de testare, astfel cum au fost create mai sus.
Tabelul Product_Details
Tabel categorie_detalii
odihnați întrebări și răspunsuri la interviul serviciului web
COUNT simplu
În această secțiune, vom vedea funcția COUNT în cel mai simplu mod.
Vom folosi COUNT pentru a returna numărul de rânduri fără nicio verificare NULL sau DISTINCT.
SELECT COUNT(*) FROM product_details;
Ieșire:
NUMARA(*) |
---|
unsprezece |
Cu interogarea de mai sus, vom obține doar numărul de rânduri returnate împotriva instrucțiunii select.
CONT CU Condiții
Acum vom folosi funcția COUNT cu condiții sau valori de coloană.
Exemplu: Să presupunem că vrem să numărăm nr. de rânduri în care nu există valori care nu sunt nule pentru numele produselor.
Putem adăuga nume_produs (sau orice nume de coloană dat) ca expresie în funcția COUNT, ceea ce ar rezulta într-un număr de rânduri care au rânduri NON NULL nume_produs.
SELECT COUNT(product_name) FROM product_details;
În acest caz, ieșirea va fi 11 (deoarece toate datele de testare au deja valori pentru coloana nume_produs)
Ieșire:
COUNT (nume_produs) |
---|
unsprezece |
Să adăugăm un rând nou, cu o valoare NULL pentru 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;
Interogarea COUNT de mai sus va returna numărul tuturor rândurilor care au un nume de produs NON NULL.
Deoarece am inserat un rând cu Nume nume_produs, acesta nu va fi returnat în rezultate. Deci, ieșirea ar fi încă 11 rânduri.
Ieșire:
COUNT (nume_produs) |
---|
unsprezece |
CONT CU DISTINCT
În exemplele anterioare, am folosit funcția COUNT cu o expresie. De asemenea, putem combina expresia cu o comandă DISTINCT pentru a obține toate valorile NON NULL, care sunt și UNICE.
Să încercăm să obținem categoria_ID DISTINCT din tabelul de detalii produs.
SELECT COUNT(DISTINCT category_id) from product_details;
Ieșire:
COUNT (DISTINCT categorie_id) |
---|
4 |
După cum puteți vedea mai sus - ieșirea este 4, ceea ce reprezintă numărul total. din categoriile_ID din tabel detalii_produs.
NUMĂR CU GRUPUL DE
Să vedem un exemplu în care dorim să folosim COUNT împreună cu GROUP BY. Aceasta este o combinație importantă în care putem obține un COUNT pentru o coloană grupată și analiza date în funcție de diferite valori ale unei coloane grupate țintă.
De exemplu: Găsiți nr. de produse pentru fiecare categorie din tabelul detalii_produs.
convertor de la YouTube la mp4 gratuit online
SELECT category_id, COUNT(*) FROM product_details GROUP BY category_id;
categorie_id | NUMARA(*) |
---|---|
unu | 7 |
Două | unu |
4 | unu |
5 | Două |
După cum putem vedea mai sus, împotriva fiecărei categorii_id, coloana COUNT (*) reprezintă numărul de rânduri care aparțin fiecărei categorii_id.
NUMĂR CU IF
Să vedem un exemplu de utilizare a unei condiții IF în interiorul funcției COUNT. Putem plasa o expresie IF în interiorul funcției COUNT și putem seta valoarea la NULL pentru condiția falsă și orice valoare non-nulă pentru condiția adevărată.
Fiecare valoare NON NULL ar fi numărată ca un singur rând cu funcția COUNT.
De exemplu: Utilizați funcția COUNT pentru a găsi toate produsele în intervalul de preț de 20 $.
SELECT COUNT(IF(price >0 AND price<20, 1, NULL)) AS count_less_than_20 FROM product_details;
Ieșire:
count_less_than_20 |
---|
7 |
În interogarea de mai sus, am obținut COUNTUL tuturor produselor a căror gamă de preț este cuprinsă între 0 și 20. Pentru condiția FALS, am setat valoarea la NULL, care nu se contorizează, atunci când rândul este evaluat pentru diferite valori ale coloanei .
CONTĂ CU JOINS
COUNT poate fi utilizat și cu instrucțiuni JOIN. Deoarece COUNT se aplică nr. de rânduri, poate fi utilizat cu orice combinație a unei interogări care operează pe o singură masă sau mai multe tabele utilizând JOINS.
Întrebări și răspunsuri de interviu pentru administratorul salesforce pentru experți
Exemplu: Alăturați-vă atât tabelului detalii_produs, cât și tabelului_detalii_categorie și găsiți numărul de nume_categorie din tabelul detalii_produs
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;
Ieșire:
Numele categoriei | COUNT (nume_categorie) |
---|---|
FMCG | 7 |
MOBILA | unu |
APARATE | unu |
ELECTRONICĂ | Două |
Tip & Trick
Utilizarea aliasului Coloanei pentru coloana care afișează rezultatul funcției COUNT: Putem folosi un alias Coloană împreună cu funcția COUNT pentru a avea nume de coloane definite de utilizator pentru coloana care afișează rezultatele funcției COUNT.
De exemplu: Să presupunem că dorim să numărăm numărul de categorii din tabelul de categorii_detalii și să numim coloana rezultată ca categorie_cont, putem folosi mai jos interogarea:
SELECT COUNT(*) as category_count from category_details;
Ieșire:
categorie_cont |
---|
5 |
întrebări frecvente
Q # 1) Cum folosesc funcția COUNT în MySQL?
Răspuns: Funcția COUNT este o funcție agregată care poate fi utilizată în 3 moduri.
- NUMARA(*) - Aceasta ar CONTA toate rândurile returnate de SELECT QUERY.
- COUNT (expresie) - Aceasta ar CONTA toate valorile NON NULL ale expresiei.
- COUNT (expresie DISTINCTĂ) - Acest lucru ar CONTA toate valorile NON NULL și UNIQUE în raport cu expresia.
Q # 2) Care este diferența dintre Count (*) și Count (1) în SQL?
Răspuns: Ambele enunțuri se comportă în mod identic. Din definiția MySQL a COUNT, orice dintre paranteze () este o expresie - și orice valoare NON NULL ar fi numărată ca 1.
Deci, în acest caz, atât * cât și 1 sunt tratate ca NON NULL și se returnează același rezultat, adică rezultatul ambelor interogări de mai jos ar fi același.
SELECT COUNT(*) from product_details; SELECT COUNT(1) from product_details;
Concluzie
În acest tutorial, am aflat despre funcția COUNT și diferitele variații oferite de MySQL.
De asemenea, am văzut cum putem folosi COUNT cu diferite scenarii, cum ar fi combinarea COUNT cu GROUP BY și scrierea unei funcții IF în cadrul funcției COUNT.
Funcția COUNT este una dintre cele mai importante și utilizate pe scară largă funcții în MySQL și este utilizată în mare măsură pentru a agrega date în funcție de condițiile specificate pentru unul sau mai multe tabele.
Lectură recomandată
- MySQL ALTER TABLE - Cum să adăugați o coloană la un tabel în MySQL
- Funcțiile MySQL CONCAT și GROUP_CONCAT cu exemple
- MySQL CREATE USER: Cum să creați un utilizator nou în MySQL
- MySQL JOIN Tutorial: interior, exterior, încrucișat, stânga, dreapta și sine
- MySQL LIKE - Tutorial cu sintaxă și exemple de utilizare
- MySQL GROUP BY Clause - Tutorial cu exemple
- Funcțiile MySQL Substring și Substring_Index cu exemple
- Tutorial MySQL Create View cu exemple de cod