mysql count count distinct with examples
Lær om bruken av forskjellige former for MySQL COUNT-funksjonen med eksempler:
COUNT er en enkel samlet funksjon, men likevel veldig effektiv og mye brukt. Med veldig enkle ord brukes den til å TELLE antall rader mot et gitt SELECT-spørsmål og kriterier.
hvordan passere matrise for å fungere i java
Denne opplæringen vil forklare syntaksen og bruken av enkle COUNT, COUNT med betingelser, COUNT med DISTINCT, COUNT med GROUP BY, etc.
Hva du vil lære:
Ulike typer MySQL-TELL
Type | Beskrivelse | Syntaks |
---|---|---|
TELLE(*) | COUNT (*) -funksjonen returnerer nei. av rader hentet av SELECT-setningen inkludert rader som inneholder NULL- og dupliserte verdier | VELG TELL (*) FRA {tableName} |
COUNT (uttrykk) | COUNT (uttrykk) teller verdien der uttrykket ikke er null. Uttrykk kan være noe enkelt som et kolonnenavn eller et komplekst uttrykk som IF-funksjon. | VELG ANTALL (uttrykk) fra {tableName} |
COUNT (DISTINCT-uttrykk) | COUNT (DISTINCT expression) - DISTINCT keyword vil resultere i å telle bare unike ikke-nullverdier mot uttrykket. For eksempel - COUNT (DISTINCT customerName) - teller bare rader som har forskjellige verdier for kundenavn | VELG TELL (DISTINCT-uttrykk) fra {tableName} |
MySQL COUNT Eksempler
Testdata
Vi bruker følgende tabeller og data for eksemplene for MySQL COUNT-funksjonen.
Tabeller:
# 1) Produktopplysninger
Lagrer detaljer om forskjellige produkter i en butikk
- product_id - INT
- produktnavn - VARCHAR
- pris - DESIMAL
- category_id - INT (UTENLANDSK Nøkkel - id fra Category_Details-tabellen)
# 2) Category_Details:
- category_id: INT
- category_name: VARCHAR
La oss lage tabellene og sette inn dummy-data ved hjelp av spørsmålene nedenfor:
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 bilder av tabellene med testdataene som er opprettet ovenfor.
Product_Details Tabell
Category_Details Tabell
Enkelt TELL
I denne delen vil vi se COUNT-funksjonen på den mest forenklede måten.
Vi bruker COUNT for å returnere antall rader uten NULL- eller DISTINCT-sjekker.
SELECT COUNT(*) FROM product_details;
Produksjon:
TELLE(*) |
---|
elleve |
Med spørringen ovenfor, vil vi bare få antall rader returnert mot select-setningen.
TELL MED Vilkår
Nå vil vi bruke COUNT-funksjonen med betingelser eller kolonneverdier.
Eksempel: Anta at vi vil telle nei. av rader der det ikke er noen nullverdier for produktnavn.
Vi kan legge til produktnavn (eller et hvilket som helst gitt kolonnenavn) som uttrykk i COUNT-funksjonen, som da vil resultere i et antall rader som har IKKE NULL produktnavn-rader.
SELECT COUNT(product_name) FROM product_details;
I dette tilfellet vil utdataene være 11 (ettersom alle testdataene allerede har verdier for kolonnen produktnavn)
plsql intervju spørsmål og svar pdf
Produksjon:
COUNT (produktnavn) |
---|
elleve |
La oss legge til en ny rad med en NULL-verdi 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;
Ovennevnte COUNT-spørring returnerer antallet av alle radene som har et produktnummer IKKE NULL.
Siden vi satte inn en rad med NULL produktnavn, ville det ikke returneres i resultatene. Så produksjonen ville fortsatt være 11 rader.
Produksjon:
COUNT (produktnavn) |
---|
elleve |
TELL MED DISTINCT
I de forrige eksemplene brukte vi COUNT-funksjonen med et uttrykk. Vi kan også kombinere uttrykket med en DISTINCT-kommando for å få alle NON NULL-verdiene, som også er UNIKE.
La oss prøve å få DISTINCT category_id fra product_details-tabellen.
SELECT COUNT(DISTINCT category_id) from product_details;
Produksjon:
COUNT (DISTINCT category_id) |
---|
4 |
Som du kan se ovenfor - er utgangen 4, som representerer det totale nr. av category_id’s i tabellen product_details.
TELL MED GROUP BY
La oss se på et eksempel der vi vil bruke COUNT sammen med GROUP BY. Dette er en viktig kombinasjon der vi kan få et ANTALL mot en gruppert kolonne og analysere data avhengig av forskjellige verdier i en målgruppert kolonne.
For eksempel: Finn nei. av produkter mot hver kategori fra product_details-tabellen.
SELECT category_id, COUNT(*) FROM product_details GROUP BY category_id;
category_id | TELLE(*) |
---|---|
en | 7 |
to | en |
4 | en |
5 | to |
Som vi kan se ovenfor, representerer COUNT (*) -kolonnen mot hver kategori_id antall rader som tilhører hver kategori_id.
TELL MED IF
La oss se et eksempel på bruk av IF-tilstand i COUNT-funksjonen. Vi kan plassere et IF-uttrykk i COUNT-funksjonen og sette verdien til NULL for falsk tilstand og en hvilken som helst ikke-null verdi for den sanne tilstanden.
Hver NON NULL-verdi vil bli telt som en enkelt rad med COUNT-funksjon.
For eksempel: Bruk COUNT-funksjonen til å finne alle produktene innenfor prisklassen 20 $.
SELECT COUNT(IF(price >0 AND price<20, 1, NULL)) AS count_less_than_20 FROM product_details;
Produksjon:
utallige_en_20 |
---|
7 |
I spørringen ovenfor har vi oppnådd ANTALLET av alle produktene hvis prisklasse er mellom 0 og 20. For FALSE-tilstanden har vi satt verdien til NULL, som ikke telles, når raden blir evaluert for forskjellige kolonneverdier .
TELL MED JOINS
COUNT kan også brukes med JOIN-utsagn. Siden COUNT gjelder nr. av rader, kan den brukes med en hvilken som helst kombinasjon av et spørsmål som opererer på et enkelt bord eller flere bord ved hjelp av JOINS.
Eksempel: Bli med både product_details og category_details tabellen og finn antall etter kategorienavn 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;
Produksjon:
kategori navn | COUNT (kategorienavn) |
---|---|
FMCG | 7 |
MØBLER | en |
APPARATER | en |
ELEKTRONIKK | to |
Tips og triks
Bruke Kolonne-alias for kolonnen som viser resultatet av COUNT-funksjonen: Vi kan bruke et Column-alias sammen med COUNT-funksjonen for å ha brukerdefinerte kolonnenavn for kolonnen som viser resultatene av COUNT-funksjonen.
For eksempel: Anta at vi vil telle antall kategorier i tabellen category_details og navngi den resulterende kolonnen som category_count, vi kan bruke spørringen nedenfor:
hvor kan jeg se anime online
SELECT COUNT(*) as category_count from category_details;
Produksjon:
category_count |
---|
5 |
ofte stilte spørsmål
Q # 1) Hvordan bruker jeg COUNT-funksjonen i MySQL?
Svar: COUNT-funksjon er en samlet funksjon som kan brukes på 3 måter.
- TELLE(*) - Dette vil TELLE alle radene som returneres av SELECT QUERY.
- COUNT (uttrykk) - Dette TELLER alle NON NULL-verdiene for uttrykket.
- COUNT (DISTINCT-uttrykk) - Dette vil TELLE alle IKKE NULL- og UNIKE verdier mot uttrykket.
Q # 2) Hva er forskjellen mellom Count (*) og Count (1) i SQL?
Svar: Begge uttalelsene oppfører seg på en identisk måte. Fra MySQLs definisjon av COUNT er alt i parentes () et uttrykk - og enhver NON NULL-verdi vil bli talt som 1.
Så i dette tilfellet behandles både * og 1 som IKKE NULL, og det samme resultatet returneres, dvs. resultatet av begge spørsmålene nedenfor vil være det samme.
SELECT COUNT(*) from product_details; SELECT COUNT(1) from product_details;
Konklusjon
I denne opplæringen lærte vi om COUNT-funksjonen og de forskjellige variantene som MySQL tilbyr.
Vi så også hvordan vi kan bruke COUNT med forskjellige scenarier, for eksempel å kombinere COUNT med GROUP BY og skrive en IF-funksjon i COUNT-funksjonen.
COUNT-funksjonen er en av de viktigste og mest brukte funksjonene i MySQL og brukes i stor grad til å samle data avhengig av de angitte forholdene for en eller flere tabeller.
Anbefalt lesing
- MySQL ALTER TABLE - Slik legger du til kolonne i en tabell i MySQL
- MySQL CONCAT og GROUP_CONCAT funksjoner med eksempler
- MySQL CREATE USER: Hvordan lage nye brukere i MySQL
- MySQL JOIN Opplæring: indre, ytre, kryss, venstre, høyre og selv
- MySQL LIKE - Veiledning med syntaks og brukseksempler
- MySQL GROUP BY Clause - Opplæring med eksempler
- MySQL Substring og Substring_Index funksjoner med eksempler
- MySQL Lag visningsveiledning med kodeeksempler