Sommario: in questo tutorial, imparerai come usare la funzione COUNT()
di PostgreSQL per contare il numero di righe in una tabella.
PostgreSQL COUNT() function overview
La funzione COUNT()
è una funzione aggregata che ti permette di ottenere il numero di righe che soddisfano una specifica condizione di una query.
La seguente dichiarazione illustra vari modi di usare la funzione COUNT()
.
COUNT(*)
La funzione COUNT(*)
restituisce il numero di righe restituite da una dichiarazione SELECT
, inclusi i NULL e i duplicati.
Code language: SQL (Structured Query Language) (sql)
Quando si applica la funzione COUNT(*)
all’intera tabella, PostgreSQL deve eseguire la scansione sequenziale dell’intera tabella.
Se si usa la funzione COUNT(*)
su una grande tabella, la query sarà lenta. Questo è legato all’implementazione MVCC di PostgreSQL. Poiché più transazioni vedono diversi stati di dati allo stesso tempo, non c’è un modo diretto per la funzione COUNT(*)
di contare su tutta la tabella, quindi PostgreSQL deve scansionare tutte le righe.
COUNT(column)
Simile alla funzione COUNT(*)
, la funzione COUNT(column)
restituisce il numero di righe restituite da una clausola SELECT
. Tuttavia, non considera i valori NULL
nella column
.
Code language: SQL (Structured Query Language) (sql)
COUNT(DISTINCT column)
In questa forma, la COUNT(DISTINCT column)
restituisce il numero di valori unici non nulli nella column.
Code language: SQL (Structured Query Language) (sql)
Si usa spesso la funzione COUNT()
con la clausola GROUP BY
per restituire il numero di elementi per ogni gruppo. Per esempio, possiamo usare la funzione COUNT()
con la clausola GROUP BY
per restituire il numero di film in ogni categoria di film.
Esempi di funzione PostgreSQL COUNT()
Utilizziamo la tabella payment
nel database di esempio per la dimostrazione.
1) Esempio di PostgreSQL COUNT(*)
La seguente dichiarazione usa la funzione COUNT(*)
per restituire il numero di transazioni nella tabella payment
:
Code language: SQL (Structured Query Language) (sql)
Ecco il risultato:
2) PostgreSQL COUNT(colonna DISTINCT) esempio
Per ottenere gli importi distinti che i clienti hanno pagato, si usa la funzione COUNT(DISTINCT amount)
come mostrato nel seguente esempio:
Code language: SQL (Structured Query Language) (sql)
PostgreSQL COUNT() con clausola GROUP BY
Per ottenere il numero di pagamenti del cliente, si usa la clausola GROUP BY
per raggruppare i pagamenti in gruppi in base all’id del cliente e si usa la funzione COUNT()
per contare i pagamenti per ogni gruppo.
La seguente query illustra l’idea:
Code language: SQL (Structured Query Language) (sql)
Ecco il risultato parziale:
PostgreSQL COUNT() con clausola HAVING
È possibile utilizzare la funzione COUNT
in una clausola HAVING
per applicare una condizione specifica ai gruppi. Per esempio, la seguente istruzione trova i clienti che hanno fatto più di 40 pagamenti:
Code language: SQL (Structured Query Language) (sql)
In questo tutorial, hai imparato come usare la funzione COUNT()
di PostgreSQL per restituire il numero di righe in una tabella.
- Questo tutorial è stato utile?
- SìNo