mysql count count distinct with examples
Lär dig mer om användningen av olika former av MySQL COUNT-funktionen med exempel:
COUNT är en enkel aggregerad funktion men ändå mycket effektiv och används i stor utsträckning. Med mycket enkla ord används den för att RÄKA antalet rader mot en viss SELECT-fråga och kriterier.
Denna handledning förklarar syntaxen och användningen av enkla COUNT, COUNT med villkor, COUNT med DISTINCT, COUNT med GROUP BY, etc.
Vad du kommer att lära dig:
appar som spionerar på andra telefoner
Olika typer av MySQL-RÄKNING
Typ | Beskrivning | Syntax |
---|---|---|
RÄKNA(*) | COUNT (*) -funktionen returnerar nr. av rader hämtade av SELECT-satsen inklusive rader som innehåller NULL- och Duplicate-värden | VÄLJ RÄKN (*) FRÅN {tableName} |
COUNT (uttryck) | COUNT (uttryck) räknar värdet där uttrycket inte är null. Uttryck kan vara något enkelt som ett kolumnnamn eller ett komplext uttryck som IF-funktion. | VÄLJ RÄKN (uttryck) från {tableName} |
COUNT (DISTINCT-uttryck) | COUNT (DISTINCT expression) - DISTINCT-nyckelord skulle resultera i att endast unika icke-nollvärden räknas mot uttrycket. Till exempel - COUNT (DISTINCT customerName) - räknar bara rader som har olika värden för kundnamn | VÄLJ RÄKN (DISTINCT-uttryck) från {tableName} |
MySQL COUNT Exempel
Testdata
Vi skulle använda följande tabeller och data för exemplen för MySQL COUNT-funktionen.
Tabeller:
# 1) Produktdetaljer
Lagrar information om olika produkter i en butik
- product_id - INT
- produktnamn - VARCHAR
- pris - DECIMAL
- category_id - INT (UTLÄNDSK KEY - id från Category_Details-tabellen)
# 2) Category_Details:
- category_id: INT
- category_name: VARCHAR
Låt oss skapa tabellerna och infoga dummydata med hjälp av frågorna nedan:
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 tabellerna med testdata som skapats ovan.
Product_Details Tabell
Category_Details Tabell
Enkelt RÄKNING
I det här avsnittet ser vi COUNT-funktionen på det mest förenklade sättet.
Vi använder COUNT för att returnera antalet rader utan några NULL- eller DISTINCT-kontroller.
SELECT COUNT(*) FROM product_details;
Produktion:
RÄKNA(*) |
---|
elva |
Med ovanstående fråga kommer vi bara att få tillbaka antalet rader mot select-uttalandet.
RÄKNA med villkor
Nu kommer vi att använda COUNT-funktionen med villkor eller kolumnvärden.
Exempel: Antag att vi vill räkna nej. av rader där det inte finns några icke-nollvärden för produktnamn.
Vi kan lägga till produktnamn (eller vilket kolumnnamn som helst) som uttryck i COUNT-funktionen, vilket sedan resulterar i ett antal rader med INTE NULL produktnamnsrader.
SELECT COUNT(product_name) FROM product_details;
I det här fallet blir utgången 11 (eftersom alla testdata redan har värden för produktnamn kolumn)
Produktion:
COUNT (produktnamn) |
---|
elva |
Låt oss lägga till en ny rad med ett NULL-värde för produktnamn.
INSERT INTO `product_details` (`product_id`,`product_name`,`price`,`category_id`) VALUES (12,NULL,0.5,1);
SELECT COUNT(product_name) from product_details;
Ovanstående COUNT-fråga kommer att returnera antalet av alla rader som har ett NON NULL-produktnamn.
Eftersom vi infogade en rad med NULL-produktnamn skulle den inte returneras i resultaten. Så produktionen skulle fortfarande vara 11 rader.
Produktion:
COUNT (produktnamn) |
---|
elva |
RÄKNA med DISTINCT
I de föregående exemplen använde vi funktionen COUNT med ett uttryck. Vi kan också kombinera uttrycket med ett DISTINCT-kommando för att få alla NON NULL-värden, som också är UNIKA.
plsql intervjufrågor och svar pdf
Låt oss försöka få DISTINCT category_id från product_details-tabellen.
SELECT COUNT(DISTINCT category_id) from product_details;
Produktion:
COUNT (DISTINCT category_id) |
---|
4 |
Som du kan se ovan är utgången 4, vilket representerar det totala nr. av kategori_id i tabell produktinformation.
RÄKNA MED GROUP BY
Låt oss titta på ett exempel där vi vill använda COUNT tillsammans med GROUP BY. Detta är en viktig kombination där vi kan få ett COUNT mot en grupperad kolumn och analysera data beroende på olika värden i en målgruppskolumn.
Till exempel: Hitta nej. av produkter mot varje kategori från tabellen product_details.
SELECT category_id, COUNT(*) FROM product_details GROUP BY category_id;
category_id | RÄKNA(*) |
---|---|
1 | 7 |
två | 1 |
4 | 1 |
5 | två |
Som vi kan se ovan representerar kolumnen COUNT (*) mot varje category_id antalet rader som tillhör varje category_id.
RÄKNA med IF
Låt oss se ett exempel på att använda ett IF-tillstånd i COUNT-funktionen. Vi kan placera ett IF-uttryck inuti COUNT-funktionen och ställa in värdet till NULL för falskt tillstånd och eventuellt icke-nollvärde för det sanna tillståndet.
Varje NON NULL-värde räknas som en enstaka rad w.r.t COUNT-funktion.
Till exempel: Använd COUNT-funktionen för att hitta alla produkter inom prisintervallet 20 $.
SELECT COUNT(IF(price >0 AND price<20, 1, NULL)) AS count_less_than_20 FROM product_details;
Produktion:
oräkneliga_ än 20 |
---|
7 |
I ovanstående fråga har vi fått COUNT för alla produkter vars prisintervall är mellan 0 och 20. För FALSE-villkoret har vi satt värdet till NULL, vilket inte räknas, när raden utvärderas för olika kolumnvärden .
RÄKNA MED JOINS
COUNT kan också användas med JOIN-uttalanden. Eftersom COUNT gäller för nr. av rader kan den användas med vilken kombination som helst av en fråga som fungerar på en enda tabell eller flera tabeller med JOINS.
Exempel: Gå med i både product_details- och category_details-tabellen och hitta antal efter kategorinamn från tabellen 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;
Produktion:
kategori namn | COUNT (kategorinamn) |
---|---|
FMCG | 7 |
MÖBEL | 1 |
APPARATER | 1 |
ELEKTRONIK | två |
Tips & Trick
Använda kolumnalias för kolumnen som visar resultatet av COUNT-funktionen: Vi kan använda ett Column-alias tillsammans med COUNT-funktionen för att ha användardefinierade kolumnnamn för kolumnen som visar resultaten för COUNT-funktionen.
Till exempel: Antag att vi vill räkna antalet kategorier i tabellen category_details och namnge den resulterande kolumnen som category_count, vi kan använda nedan fråga:
SELECT COUNT(*) as category_count from category_details;
Produktion:
category_count |
---|
5 |
Vanliga frågor
F # 1) Hur använder jag COUNT-funktionen i MySQL?
Svar: COUNT-funktionen är en sammanlagd funktion som kan användas på tre sätt.
bästa gratis ssh-klienten för Windows
- RÄKNA (*) - Detta RÄKNAR alla rader som returneras av SELECT QUERY.
- COUNT (uttryck) - Detta skulle RÄKNA alla NON NULL-värden för uttrycket.
- COUNT (DISTINCT-uttryck) - Detta skulle RÄKNA alla NON NULL och UNIQUE värden mot uttrycket.
F # 2) Vad är skillnaden mellan Count (*) och Count (1) i SQL?
Svar: Båda uttalandena beter sig på samma sätt. Från MySQL: s definition av COUNT är allt inom parentes () ett uttryck - och alla NON NULL-värden räknas som 1.
Så i det här fallet behandlas både * och 1 som NON NULL och samma resultat returneras, dvs resultatet av båda frågorna nedan skulle vara detsamma.
SELECT COUNT(*) from product_details; SELECT COUNT(1) from product_details;
Slutsats
I denna handledning lärde vi oss om COUNT-funktionen och de olika variationerna som MySQL tillhandahåller.
Vi såg också hur vi kan använda COUNT med olika scenarier, som att kombinera COUNT med GROUP BY och skriva en IF-funktion inom COUNT-funktionen.
COUNT-funktionen är en av de viktigaste och mest använda funktionerna i MySQL och används till stor del för att aggregera data beroende på de angivna förhållandena för en eller flera tabeller.
Rekommenderad läsning
- MySQL ALTER TABLE - Hur man lägger till kolumn i en tabell i MySQL
- MySQL CONCAT och GROUP_CONCAT-funktioner med exempel
- MySQL CREATE USER: Hur man skapar ny användare i MySQL
- MySQL JOIN Handledning: Inre, yttre, kors, vänster, höger och själv
- MySQL LIKE - Handledning med syntax och exempel på användning
- MySQL GROUP BY Clause - Handledning med exempel
- MySQL Substring och Substring_Index-funktioner med exempel
- MySQL Skapa vyhandledning med kodexempel