mysql count count distinct with examples
Lær om brugen af forskellige former for MySQL COUNT-funktionen med eksempler:
gratis dvd-kopimaskine til Windows 10
COUNT er en simpel samlet funktion, men alligevel meget effektiv og udbredt. I meget enkle ord bruges det til at TÆLLE antallet af rækker mod en given SELECT-forespørgsel og kriterier.
Denne vejledning forklarer syntaksen og brugen af simpel COUNT, COUNT med betingelser, COUNT med DISTINCT, COUNT med GROUP BY osv.
Hvad du vil lære:
Forskellige typer MySQL-TÆLLER
Type | Beskrivelse | Syntaks |
---|---|---|
TÆLLE(*) | COUNT (*) -funktionen returnerer nr. af rækker hentet af SELECT-sætningen inklusive rækker, der indeholder NULL- og duplikatværdier | VÆLG TÆLL (*) FRA {tableName} |
COUNT (udtryk) | COUNT (udtryk) tæller værdien, hvor udtrykket ikke er nul. Udtryk kan være noget simpelt som et kolonnenavn eller et komplekst udtryk, såsom IF-funktion. | VÆLG COUNT (udtryk) fra {tableName} |
COUNT (DISTINCT-udtryk) | TÆLLING (DISTINCT-udtryk) - DISTINCT-nøgleord vil kun resultere i at tælle unikke ikke-nulværdier mod udtrykket. For eksempel - COUNT (DISTINCT customerName) - tæller kun rækker, der har forskellige værdier for kundenavn | VÆLG COUNT (DISTINCT-udtryk) fra {tableName} |
MySQL COUNT Eksempler
Testdata
Vi bruger følgende tabeller og data til eksemplerne til MySQL COUNT-funktionen.
Borde:
# 1) Produktdetaljer
Gemmer detaljer om forskellige produkter i en butik
- product_id - INT
- produktnavn - VARCHAR
- pris - DEKIMAL
- category_id - INT (UDENLANDSK KEY - id fra Category_Details tabel)
# 2) Kategori-detaljer:
- category_id: INT
- category_name: VARCHAR
Lad os oprette tabellerne og indsætte dummy-data ved hjælp af nedenstående forespørgsler:
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);
Se billeder af tabellerne med testdata som oprettet ovenfor.
Produkt_Detaljer-tabel
Kategori_Detaljer-tabel
Simpel TÆLLING
I dette afsnit ser vi COUNT-funktionen på den mest forenklede måde.
Vi bruger COUNT til at returnere antallet af rækker uden NULL- eller DISTINCT-kontrol.
SELECT COUNT(*) FROM product_details;
Produktion:
TÆLLE(*) |
---|
elleve |
Med ovenstående forespørgsel får vi bare antallet af rækker returneret i forhold til select-sætningen.
TÆLL MED Betingelser
Nu bruger vi COUNT-funktionen med betingelser eller kolonneværdier.
Eksempel: Antag, at vi vil tælle nej. af rækker, hvor der ikke er værdier, der ikke er nul for produktnavne.
bedste gratis mp3 musik downloader app til android
Vi kan tilføje produktnavn (eller et hvilket som helst givet kolonnenavn) som udtryk i COUNT-funktionen, hvilket derefter vil resultere i et antal rækker, der har IKKE NULL produktnavn-rækker.
SELECT COUNT(product_name) FROM product_details;
I dette tilfælde vil output være 11 (da alle testdata allerede har værdier for kolonnen produktnavn)
Produktion:
COUNT (produktnavn) |
---|
elleve |
Lad os tilføje en ny række med en NULL-værdi for produktnavn.
INSERT INTO `product_details` (`product_id`,`product_name`,`price`,`category_id`) VALUES (12,NULL,0.5,1);
SELECT COUNT(product_name) from product_details;
Ovenstående COUNT-forespørgsel returnerer antallet af alle rækker, der har et IKKE NULL produktnavn.
Da vi indsatte en række med NULL produktnavn, returneres det ikke i resultaterne. Så output ville stadig være 11 rækker.
Produktion:
COUNT (produktnavn) |
---|
elleve |
TÆLL MED DISTINCT
I de foregående eksempler brugte vi COUNT-funktionen med et udtryk. Vi kan også kombinere udtrykket med en DISTINCT-kommando for at få alle NON NULL-værdierne, som også er UNIKE.
Lad os prøve at hente DISTINCT category_id fra product_details-tabellen.
SELECT COUNT(DISTINCT category_id) from product_details;
Produktion:
COUNT (DISTINCT category_id) |
---|
4 |
Som du kan se ovenfor - output er 4, hvilket repræsenterer det samlede nr. af category_id's i tabel product_details.
TÆLL MED GROUP BY
Lad os se på et eksempel, hvor vi vil bruge COUNT sammen med GROUP BY. Dette er en vigtig kombination, hvor vi kan få et COUNT mod en grupperet kolonne og analysere data afhængigt af forskellige værdier i en målgrupperet kolonne.
For eksempel: Find nej. af produkter mod hver kategori fra tabellen product_details.
SELECT category_id, COUNT(*) FROM product_details GROUP BY category_id;
category_id | TÆLLE(*) |
---|---|
1 | 7 |
to | 1 |
4 | 1 |
5 | to |
Som vi kan se ovenfor, repræsenterer kolonnen COUNT (*) for hver kategori_ID antallet af rækker, der tilhører hver kategori_id.
TÆLL MED IF
Lad os se et eksempel på brug af en IF-betingelse i COUNT-funktionen. Vi kan placere et IF-udtryk inde i COUNT-funktionen og indstille værdien til NULL for falsk tilstand og enhver ikke-nul-værdi for den sande tilstand.
Hver NON NULL-værdi tælles som en enkelt række w.r.t COUNT-funktion.
For eksempel: Brug COUNT-funktionen til at finde alle produkter inden for prisområdet 20 $.
SELECT COUNT(IF(price >0 AND price<20, 1, NULL)) AS count_less_than_20 FROM product_details;
Produktion:
utallige_ end_20 |
---|
7 |
I ovenstående forespørgsel har vi opnået TÆLLET for alle produkter, hvis prisinterval er mellem 0 og 20. For FALSE-tilstanden har vi indstillet værdien til NULL, som ikke tælles, når rækken evalueres for forskellige kolonneværdier .
TÆLL MED JOINS
COUNT kan også bruges med JOIN-udsagn. Da COUNT gælder for nr. af rækker kan den bruges med enhver kombination af en forespørgsel, der fungerer på en enkelt tabel eller flere tabeller ved hjælp af JOINS.
Eksempel: Deltag i både product_details og category_details-tabellen, og find antal efter kategorinavn fra product_details-tabellen.
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;
Produktion:
category_name | COUNT (kategorienavn) |
---|---|
FMCG | 7 |
MØBEL | 1 |
HÅRDE HVIDEVARER | 1 |
ELEKTRONIK | to |
Tip & trick
Brug af kolonnealias til den kolonne, der viser resultatet af COUNT-funktionen: Vi kan bruge et Column-alias sammen med COUNT-funktionen til at have brugerdefinerede kolonnenavne til kolonnen, der viser resultaterne af COUNT-funktionen.
hvad er den bedste gratis downloader til musik?
For eksempel: Antag, at vi vil tælle antallet af kategorier i tabellen category_details og navngive den resulterende kolonne som category_count, vi kan bruge nedenstående forespørgsel:
SELECT COUNT(*) as category_count from category_details;
Produktion:
category_count |
---|
5 |
Ofte stillede spørgsmål
Q # 1) Hvordan bruger jeg COUNT-funktionen i MySQL?
Svar: COUNT-funktionen er en samlet funktion, der kan bruges på 3 måder.
- COUNT (*) - Dette TÆLLER alle rækkerne, der returneres af SELECT QUERY.
- COUNT (udtryk) - Dette TÆLLER alle NON NULL-værdierne for udtrykket.
- COUNT (DISTINCT-udtryk) - Dette vil TÆLLE alle de NON NULL og UNIQUE værdier mod udtrykket.
Q # 2) Hvad er forskellen mellem Count (*) og Count (1) i SQL?
Svar: Begge udsagn opfører sig på samme måde. Fra MySQLs definition af COUNT er alt inden for parenteser () et udtryk - og enhver NUL NULL-værdi tælles som 1.
Så i dette tilfælde behandles både * og 1 som NON NULL, og det samme resultat returneres, dvs. resultatet af begge nedenstående forespørgsler ville være det samme.
SELECT COUNT(*) from product_details; SELECT COUNT(1) from product_details;
Konklusion
I denne vejledning lærte vi om COUNT-funktionen og de forskellige variationer, der leveres af MySQL.
Vi så også, hvordan vi kan bruge COUNT med forskellige scenarier, som at kombinere COUNT med GROUP BY og skrive en IF-funktion inden for COUNT-funktionen.
COUNT-funktionen er en af de vigtigste og mest anvendte funktioner i MySQL og bruges stort set til at samle data afhængigt af de angivne betingelser for en eller flere tabeller.
Anbefalet læsning
- MySQL ALTER TABLE - Sådan tilføjes kolonne til en tabel i MySQL
- MySQL CONCAT og GROUP_CONCAT-funktioner med eksempler
- MySQL CREATE USER: Sådan oprettes en ny bruger i MySQL
- MySQL JOIN Tutorial: Indre, ydre, kryds, venstre, højre og selv
- MySQL LIKE - Vejledning med eksempler på syntaks og brug
- MySQL GROUP BY-klausul - Vejledning med eksempler
- MySQL Substring og Substring_Index-funktioner med eksempler
- MySQL Opret visningsvejledning med kodeeksempler