MySQL conta i record di corrispondenza con COUNT

Mysql Count Matching Records With Count



La ridondanza dei dati si verifica per molte ragioni. Molti dei compiti complicati che dovresti affrontare mentre lavori con i sistemi di database sta cercando di scoprire valori duplicati. A questo scopo, utilizzeremo il metodo di aggregazione COUNT(). Il metodo COUNT() restituisce la somma delle righe che risiedono in una tabella specifica. La funzione COUNT() consente di sommare tutte le righe o solo le righe che corrispondono alla condizione definita. In questa guida imparerai come identificare i valori duplicati per una o forse più colonne MySQL usando COUNT(). Il metodo COUNT() ha i seguenti tre tipi:

  • CONTARE(*)
  • COUNT(espressione)
  • COUNT(espressione DISTINCT)

Assicurati di avere MySQL installato sul tuo sistema. Apri la shell del client da riga di comando MySQL e inserisci la password per continuare. Vedremo alcuni esempi per contare i valori corrispondenti utilizzando il metodo COUNT().









Abbiamo una tabella 'social' nel nostro schema 'data'. Controlliamo il suo record tramite la seguente query.



>> SELEZIONARE * A PARTIRE DAL dati .Sociale;





CONTEGGIO MySQL(*)

Il metodo COUNT(*) viene utilizzato per contare il numero di righe che risiedono nella tabella o contare il numero di righe in base alla condizione data. Per verificare il numero totale di righe in una tabella, 'social' prova la query seguente. Abbiamo un totale di 15 righe nella tabella come da risultato.

>> SELEZIONARE CONTARE (*) A PARTIRE DAL dati .Sociale;



Dai un'occhiata al metodo COUNT(*) mentre definisci alcune condizioni. Dobbiamo recuperare il numero di righe in cui il nome utente è lo stesso di 'Mustafa'. Puoi vedere che abbiamo solo 4 record per questo particolare nome.

>> SELEZIONARE CONTARE (*) A PARTIRE DAL dati .Sociale DOVE Utente ='Mustafa';

Per recuperare la somma totale delle righe in cui il sito Web degli utenti è 'Instagram', prova la query indicata di seguito. La tabella 'social' ha solo 4 record per il sito web 'Instagram'.

>> SELEZIONARE CONTARE (*) A PARTIRE DAL dati .Sociale DOVE Sito web='Instagram';

Per recuperare il numero totale di righe in cui 'Età' è maggiore di 18 è il seguente:

>> SELEZIONARE CONTARE (*) A PARTIRE DAL dati .Sociale DOVE Età> 18;

Recuperiamo i dati delle colonne 'Utente' e 'Sito Web' da una tabella, dove il nome utente inizia con l'alfabeto 'M'. Prova le seguenti istruzioni sulla shell.

>> SELEZIONARE Utente ,Sito web A PARTIRE DAL dati .Sociale DOVE Utente Come 'M%';

MySQL COUNT (espressione)

In MySQL, il metodo COUNT(espressione) viene utilizzato solo quando si desidera contare i valori non nulli della colonna 'espressione'. L''espressione' sarebbe il nome di qualsiasi colonna. Facciamone un semplice esempio. Abbiamo contato solo i valori non nulli di una colonna 'Sito web', che è correlata alla colonna 'Età' con un valore uguale a '25'. Vedere! Abbiamo solo 4 record non nulli per gli utenti di età '25' che utilizzano siti web.

>> SELEZIONARE CONTARE (Sito web) A PARTIRE DAL dati .Sociale DOVE Età= 25;

MySQL COUNT (espressione DISTINCT)

In MySQL, il metodo COUNT(DISTINCT expression) viene utilizzato per sommare valori non Null e valori distinti della colonna 'expression'. Per contare un numero distinto di valori non nulli nella colonna 'Età' abbiamo utilizzato la query seguente. Troverai 6 record non nulli e distinti della colonna 'Età' dalla tabella 'sociale'. Ciò significa che abbiamo un totale di 6 persone di età diverse.

>> SELEZIONARE CONTARE ( DISTINTO Età) A PARTIRE DAL dati .Sociale;

MySQL COUNT (SE (espressione))

Per una maggiore enfasi, dovresti unire COUNT() con le funzioni di controllo del flusso. Per cominciare, per una parte dell'espressione utilizzata nel metodo COUNT(), potresti utilizzare la funzione IF(). Può essere molto utile eseguire questa operazione per fornire una rapida suddivisione delle informazioni all'interno di un database. Conteremo il numero di righe con diverse condizioni di età e le divideremo in tre diverse colonne, che si possono definire categorie. Innanzitutto, COUNT(IF) conterà le righe con età inferiore a 20 e salverà questo conteggio in una nuova colonna denominata 'Adolescente'. Il secondo COUNT(IF) conta le righe con età compresa tra 20 e 30 salvandole in una colonna 'Giovani'. Terzo, l'ultimo conta le righe con età maggiore di 30 e salvate in una colonna 'Mature'. Abbiamo 5 adolescenti, 9 giovani e solo 1 persona matura nel nostro record.

>> SELEZIONARE CONTARE ( SE (Età< venti,1, NULLO ))'Adolescente', CONTARE ( SE (Età TRA venti E 30,1, NULLO ))'Giovane', CONTARE ( SE (Età> 30,1, NULLO ))'Maturo' A PARTIRE DAL dati .Sociale;

MySQL COUNT(*) con clausola GROUP BY

L'istruzione GROUP BY è un'istruzione SQL che utilizza righe di gruppo con gli stessi valori. Restituisce il numero totale di valori che risiedono in ciascun gruppo. Ad esempio, se si desidera controllare separatamente il numero di ciascun utente, è necessario definire la colonna 'Utente' con la clausola GROUP BY mentre si contano i record per ciascun utente con COUNT (*).

>> SELEZIONARE Utente , CONTARE (*) A PARTIRE DAL dati .Sociale RAGGRUPPARE PER Utente ;

È possibile selezionare più di due colonne durante l'esecuzione del conteggio delle righe insieme alla clausola GROUP BY, come segue.

>> SELEZIONARE Utente ,Età,Sito web, CONTARE (*) A PARTIRE DAL dati .Sociale RAGGRUPPARE PER Sito web;

Se vogliamo contare le righe mentre utilizziamo la clausola WHERE che contiene alcune condizioni insieme a GROUP BY e COUNT (*), puoi anche farlo. La query seguente recupererà e conterà i record delle colonne: 'Utente', 'Sito web' e 'Età' dove il valore del sito web è solo 'Instagram' e 'Snapchat'. Puoi vedere che abbiamo solo 1 record per entrambi i siti Web per utenti diversi.

>> SELEZIONARE Utente ,Sito web,Età, CONTARE (*) A PARTIRE DAL dati .Sociale DOVE Sito web='Instagram' o Sito web='Snapchat' RAGGRUPPARE PER Sito web,Età;

MySQL COUNT(*) con la clausola GROUP BY e ORDER BY

Proviamo le clausole GROUP BY e ORDER BY insieme al metodo COUNT(). Recuperiamo e contiamo le righe della tabella 'social' mentre disponiamo i dati in ordine decrescente utilizzando questa query:

>> SELEZIONARE Utente ,Sito web,Età, CONTARE (*) A PARTIRE DAL dati .Sociale RAGGRUPPARE PER Età ORDINATO DA CONTARE (*) DESC ;

La query indicata di seguito conterà prima le righe, quindi visualizzerà gli unici record con COUNT maggiore di 2 in ordine crescente.

>> SELEZIONARE Utente ,Età, CONTARE (*) A PARTIRE DAL dati .Sociale RAGGRUPPARE PER Età AVENDO CONTARE (*) > 2 ORDINATO DA CONTARE (*) ASC ;

Conclusione

Abbiamo esaminato tutti i metodi possibili per contare i record corrispondenti o duplicati utilizzando il metodo COUNT() con diverse altre clausole.