Come utilizzare COUNT in SQL
Introduzione
- COUNT( ) è una funzione aggregata in SQL.
- Questa funzione conta il numero di record in una tabella se la condizione non è specificata.
- Se la condizione è specificata, la funzione di conteggio restituisce il numero di record che soddisfano la condizione specificata.
Variazioni di CONTEGGIO ( ) in SQL
- COUNT(*)
COUNT (*) viene utilizzato per visualizzare il numero di record presenti in una tabella.
I risultati della funzione COUNT (*) conterranno NULL e anche voci duplicate in considerazione.
Sintassi:
SELECT COUNT (*) FROM tablename;
Esempio:
Per prima cosa creeremo un database con il nome "employeedb". Quindi in quel database creeremo una tabella "dipendente" e inseriremo i record nella tabella. Prenderemo in considerazione questa tabella e database per tutti gli esempi successivi.
Troveremo il numero di record presenti nella tabella 'dipendente' utilizzando la funzione COUNT().
mysql> USE employeedb; Database changed mysql> SELECT *FROM employee; +--------+----------+------------+ | Emp_ID | Emp_Name | Emp_Salary | +--------+----------+------------+ | 1 | Nikita | 30000 | | 2 | Riddhi | 25000 | | 3 | Nayan | 45000 | | 4 | Shruti | 15000 | | 5 | Anurati | 55000 | | 6 | NULL | NULL | | 7 | Anurati | 55000 | +--------+----------+------------+ 7 rows in set (0.00 sec)
mysql> SELECT COUNT(*) FROM employee;
Risultato:
+----------+ | COUNT(*) | +----------+ | 7 | +----------+ 1 row in set (0.00 sec)
Sono presenti 7 record nella tabella dei dipendenti.
- CONTEGGIO (1)
COUNT (1) viene utilizzato anche per visualizzare il numero di record presenti in una tabella. I risultati della funzione COUNT (1) conterranno NULL e anche voci duplicate in considerazione. La funzione COUNT (1) funziona come COUNT (*). Anche i risultati di COUNT (1) e COUNT (*) sono gli stessi.
Sintassi:
SELECT COUNT (1) FROM tablename;
Esempio 1: Visualizzeremo il numero di record presenti nella tabella dei dipendenti utilizzando COUNT (1).
mysql> SELECT COUNT(1) FROM employee;
Risultato:
+----------+ | COUNT(1) | +----------+ | 7 | +----------+ 1 row in set (0.00 sec)
Ci sono 7 record presenti in una tabella.
Esempio 2:
Vediamo cosa succede quando passiamo 14 come parametro alla funzione COUNT().
mysql> SELECT COUNT(14) FROM employee;
Risultato:
+-----------+ | COUNT(14) | +-----------+ | 7 | +-----------+ 1 row in set (0.00 sec)
Ci sono 7 record presenti in una tabella. Quindi, 7 viene visualizzato come output anche se abbiamo passato 14 come parametro alla funzione COUNT(). Passare un numero intero a una funzione COUNT() non significa contare quel numero di righe nella tabella. Significa semplicemente che 14 verranno assegnate a ogni riga presente in una tabella e quindi le righe verranno sommate per dare un totale e visualizzate come output.
Esempio 3:
Vediamo cosa succede quando passiamo -14 come parametro alla funzione COUNT().
mysql> SELECT COUNT(-14) FROM employee;
Risultato:
+------------+ | COUNT(-14) | +------------+ | 7 | +------------+ 1 row in set (0.07 sec)
Ci sono 7 record presenti in una tabella. Quindi, 7 viene visualizzato come output anche se abbiamo passato -14 come parametro alla funzione COUNT(). Significa semplicemente -14 verrà assegnato a ogni riga presente in una tabella e quindi le righe verranno sommate per dare un totale e visualizzate come output.
- COUNT(ColumnName)
COUNT(ColumnName) viene utilizzato per trovare il numero di record che contengono valori per la colonna specificata. Durante l'utilizzo della funzione COUNT() con nomecolonna come parametro, i record che contengono valori NULL per quel record verranno ignorati.
Sintassi:
SELECT COUNT(ColumnName) FROM tablename;
Esempio 1:
Mostreremo il numero di record che esiste per Emp_ID.
mysql> SELECT COUNT(Emp_ID) FROM employee;
Risultato:
+---------------+ | COUNT(Emp_ID) | +---------------+ | 7 | +---------------+ 1 row in set (0.00 sec)
Ci sono 7 record che contengono Emp_ID univoco. Pertanto, 7 viene visualizzato come output.
Esempio 2:
Visualizzeremo il numero di record che esiste per Emp_Name.
mysql> SELECT COUNT(Emp_Name) FROM employee;
Risultato:
+-----------------+ | COUNT(Emp_Name) | +-----------------+ | 6 | +-----------------+ 1 row in set (0.00 sec)
Ci sono 7 record nella tabella dei dipendenti tra i quali, un record contiene valori NULL per Emp_Name. Quindi, quel particolare record viene ignorato e 6 viene visualizzato come output.
Esempio 3:
Visualizzeremo il numero di record esistenti per Emp_Salary.
mysql> SELECT COUNT(Emp_Salary) FROM employee;
Risultato:
+-------------------+ | COUNT(Emp_Salary) | +-------------------+ | 6 | +-------------------+ 1 row in set (0.00 sec)
Ci sono 7 record nella tabella dei dipendenti tra i quali un record contiene valori NULL per Emp_Salary. Quindi, quel particolare record viene ignorato e 6 viene visualizzato come output.
- COUNT(DISTINCT ColumnnName)
La funzione COUNT() con DISTINCT ColumnName come parametro viene utilizzata per visualizzare il numero di record che contiene valori univoci per una colonna specifica. I record che contengono valori duplicati e NULL non verranno conteggiati.
Sintassi:
SELECT COUNT(DISTINCT ColumnName) FROM tablename;
Esempio 1:
Visualizzeremo il numero di record che contengono valori univoci per Emp_ID.
mysql> SELECT COUNT( DISTINCT Emp_ID) FROM employee;
Risultato:
+-------------------------+ | COUNT( DISTINCT Emp_ID) | +-------------------------+ | 7 | +-------------------------+ 1 row in set (0.05 sec)
Ci sono 7 record che contengono valori univoci per Emp_ID.
Esempio 2:
Visualizzeremo il numero di record che contengono valori univoci per Emp_Name.
mysql> SELECT COUNT( DISTINCT Emp_Name) FROM employee;
Risultato:
+---------------------------+ | COUNT( DISTINCT Emp_Name) | +---------------------------+ | 5 | +---------------------------+ 1 row in set (0.00 sec)
Ci sono 5 record che contengono valori univoci per Emp_Name. I valori NULL e duplicati in Emp_Name non verranno considerati dalla parola chiave DISTINCT.
Esempio 3:
Visualizzeremo il numero di record che contengono valori univoci per Emp_Salary.
mysql> SELECT COUNT( DISTINCT Emp_Salary) FROM employee;
Risultato:
+-----------------------------+ | COUNT( DISTINCT Emp_Salary) | +-----------------------------+ | 5 | +-----------------------------+ 1 row in set (0.00 sec)
Ci sono 5 record che contengono valori univoci per Emp_Salary. I valori NULL e duplicati in Emp_Salary non verranno considerati dalla parola chiave DISTINCT.