mysql count count distinct with examples
Scopri gli usi delle varie forme della funzione MySQL COUNT con esempi:
COUNT è una semplice funzione di aggregazione, ma molto efficace e ampiamente utilizzata. In parole molto semplici, viene utilizzato per COUNT il numero di righe rispetto a una determinata query e criteri SELECT.
Questo tutorial spiegherà la sintassi e l'uso di COUNT semplice, COUNT con condizioni, COUNT con DISTINCT, COUNT con GROUP BY, ecc.
Cosa imparerai:
Vari tipi di MySQL COUNT
genere | Descrizione | Sintassi |
---|---|---|
CONTARE(*) | La funzione COUNT (*) restituisce il no. di righe recuperate dall'istruzione SELECT comprese le righe contenenti valori NULL e Duplicate | SELEZIONA COUNT (*) DA {tableName} |
COUNT (espressione) | COUNT (espressione) conta il valore dove espressione non è nullo. L'espressione può essere qualcosa di semplice come il nome di una colonna o un'espressione complessa come la funzione IF. | SELEZIONA COUNT (espressione) da {tableName} |
COUNT (DISTINCT Expression) | COUNT (espressione DISTINCT) - La parola chiave DISTINCT comporterebbe il conteggio solo dei valori univoci non nulli rispetto all'espressione. Per esempio - COUNT (DISTINCT customerName): conteggia solo le righe con valori distinti per il nome del cliente | SELEZIONA COUNT (espressione DISTINCT) da {tableName} |
MySQL COUNT esempi
Dati di test
Useremmo le seguenti tabelle e dati per gli esempi per la funzione MySQL COUNT.
Tabelle:
# 1) Product_Details
come creare un progetto java in eclipse
Memorizza i dettagli di vari prodotti in un negozio
- product_id - INT
- nome_prodotto - VARCHAR
- prezzo - DECIMALE
- category_id - INT (FOREIGN KEY - id dalla tabella Category_Details)
# 2) Category_Details:
- category_id: INT
- nome_categoria: VARCHAR
Creiamo le tabelle e inseriamo dati fittizi utilizzando le query seguenti:
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);
Fare riferimento alle immagini delle tabelle con i dati del test come creato sopra.
Tabella Product_Details
Tabella Category_Details
Semplice COUNT
In questa sezione, vedremo la funzione COUNT nel modo più semplicistico.
Useremo COUNT per restituire il numero di righe senza alcun controllo NULL o DISTINCT.
SELECT COUNT(*) FROM product_details;
Produzione:
come eseguire un file .jar su Windows 10
CONTARE(*) |
---|
undici |
Con la query precedente, otterremo solo il numero di righe restituite rispetto all'istruzione select.
CONTE Con condizioni
Ora useremo la funzione COUNT con condizioni o valori di colonna.
Esempio: Supponiamo di voler contare il no. di righe in cui non sono presenti valori non nulli per i nomi dei prodotti.
Possiamo aggiungere product_name (o qualsiasi nome di colonna specificato) come espressione nella funzione COUNT, che risulterebbe quindi in un conteggio di righe con righe di product_name NON NULL.
SELECT COUNT(product_name) FROM product_details;
In questo caso, l'output sarà 11 (poiché tutti i dati del test hanno già valori per la colonna product_name)
Produzione:
COUNT (nome_prodotto) |
---|
undici |
Aggiungiamo una nuova riga, con un valore NULL per nome_prodotto.
INSERT INTO `product_details` (`product_id`,`product_name`,`price`,`category_id`) VALUES (12,NULL,0.5,1);
SELECT COUNT(product_name) from product_details;
La precedente COUNT query restituirà il conteggio di tutte le righe con nome_prodotto NON NULL.
Poiché abbiamo inserito una riga con NULL product_name, ciò non sarebbe stato restituito nei risultati. Quindi l'output sarebbe ancora 11 righe.
Produzione:
COUNT (nome_prodotto) |
---|
undici |
CONTE Con DISTINCT
Negli esempi precedenti, abbiamo utilizzato la funzione COUNT con un'espressione. Possiamo anche combinare l'espressione con un comando DISTINCT per ottenere tutti i valori NON NULL, anch'essi UNICI.
Proviamo a ottenere DISTINCT category_id dalla tabella product_details.
SELECT COUNT(DISTINCT category_id) from product_details;
Produzione:
COUNT (DISTINCT category_id) |
---|
4 |
Come puoi vedere sopra, l'uscita è 4, che rappresenta il totale n. di category_id's nella tabella product_details.
CONTE Con GROUP BY
Diamo un'occhiata a un esempio in cui vogliamo utilizzare COUNT insieme a GROUP BY. Questa è una combinazione importante in cui possiamo ottenere un COUNT rispetto a una colonna raggruppata e analizzare i dati in base ai diversi valori di una colonna raggruppata in destinazione.
Per esempio: Trova il no. di prodotti per ciascuna categoria dalla tabella product_details.
SELECT category_id, COUNT(*) FROM product_details GROUP BY category_id;
category_id | CONTARE(*) |
---|---|
1 | 7 |
Due | 1 |
4 | 1 |
5 | Due |
Come possiamo vedere sopra, contro ogni category_id la colonna COUNT (*) rappresenta il numero di righe appartenenti a ogni category_id.
CONTE Con IF
Vediamo un esempio di utilizzo di una condizione IF all'interno della funzione COUNT. Possiamo inserire un'espressione IF all'interno della funzione COUNT e impostare il valore su NULL per la condizione falsa e qualsiasi valore non nullo per la condizione vera.
Ogni valore NON NULL verrebbe conteggiato come una singola riga con la funzione COUNT.
Per esempio: Usa la funzione COUNT per trovare tutti i prodotti nella fascia di prezzo di 20 $.
SELECT COUNT(IF(price >0 AND price<20, 1, NULL)) AS count_less_than_20 FROM product_details;
Produzione:
count_less_than_20 |
---|
7 |
Nella query precedente, abbiamo ottenuto il COUNT di tutti i prodotti il cui intervallo di prezzo è compreso tra 0 e 20. Per la condizione FALSE, abbiamo impostato il valore su NULL, che non viene conteggiato, quando la riga viene valutata per valori di colonna diversi .
CONTE Con JOINS
COUNT può essere utilizzato anche con le istruzioni JOIN. Poiché COUNT si applica al n. di righe, può essere utilizzato con qualsiasi combinazione di una query che opera su una singola tabella o su più tabelle utilizzando JOINS.
Esempio: Unisciti alle tabelle product_details e category_details e trova count per category_name dalla tabella 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;
Produzione:
Nome della categoria | COUNT (nome_categoria) |
---|---|
FMCG | 7 |
MOBILIA | 1 |
APPARECCHIATURE | 1 |
ELETTRONICA | Due |
Suggerimento e trucco
Utilizzo di alias di colonna per la colonna che visualizza il risultato della funzione COUNT: Possiamo utilizzare un alias di colonna insieme alla funzione COUNT per avere nomi di colonna definiti dall'utente per la colonna che visualizza i risultati della funzione COUNT.
Per esempio: Supponiamo di voler contare il numero di categorie nella tabella category_details e denominare la colonna risultante come category_count, possiamo usare la seguente query:
SELECT COUNT(*) as category_count from category_details;
Produzione:
conteggio_categoria |
---|
5 |
Domande frequenti
D # 1) Come si usa la funzione COUNT in MySQL?
Risposta: La funzione COUNT è una funzione aggregata che può essere utilizzata in 3 modi.
- CONTARE(*) - Ciò sarebbe COUNT tutte le righe restituite dalla SELECT QUERY.
- COUNT (espressione) - Questo conteggerebbe tutti i valori NON NULL per l'espressione.
- COUNT (espressione DISTINCT) - Questo conteggerebbe tutti i valori NON NULL e UNIQUE rispetto all'espressione.
D # 2) Qual è la differenza tra Count (*) e Count (1) in SQL?
Risposta: Entrambe le affermazioni si comportano in modo identico. Dalla definizione di MySQL di COUNT, qualsiasi cosa tra parentesi () è un'espressione e qualsiasi valore NON NULL verrà conteggiato come 1.
Quindi, in questo caso, sia * che 1 vengono considerati NON NULL e viene restituito lo stesso risultato, ovvero il risultato di entrambe le query di seguito sarebbe lo stesso.
SELECT COUNT(*) from product_details; SELECT COUNT(1) from product_details;
Conclusione
In questo tutorial, abbiamo imparato a conoscere la funzione COUNT e le diverse varianti fornite da MySQL.
come aprire i file eps su Windows
Abbiamo anche visto come possiamo usare COUNT con diversi scenari, come combinare COUNT con GROUP BY e scrivere una funzione IF all'interno della funzione COUNT.
La funzione COUNT è una delle funzioni più importanti e ampiamente utilizzate in MySQL ed è ampiamente utilizzata per aggregare i dati a seconda delle condizioni specificate per una o più tabelle.
Lettura consigliata
- MySQL ALTER TABLE - Come aggiungere una colonna a una tabella in MySQL
- Funzioni MySQL CONCAT e GROUP_CONCAT con esempi
- MySQL CREATE USER: Come creare un nuovo utente in MySQL
- MySQL JOIN Tutorial: Inner, Outer, Cross, Left, Right e Self
- MySQL LIKE - Tutorial con sintassi ed esempi di utilizzo
- Clausola MySQL GROUP BY - Tutorial con esempi
- Funzioni MySQL Substring e Substring_Index con esempi
- Tutorial MySQL Create View con esempi di codice