Funzione COUNT di PostgreSQL

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

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.