Rezumat: în acest tutorial, veți învăța cum să utilizați funcția COUNT()
PostgreSQL pentru a număra numărul de rânduri dintr-o tabelă.
Funcția COUNT() PostgreSQL
Funcția COUNT()
este o funcție agregată care vă permite să obțineți numărul de rânduri care corespund unei condiții specifice a unei interogări.
Declarația următoare ilustrează diverse moduri de utilizare a funcției COUNT()
.
COUNT(*)
Funcția COUNT(*)
returnează numărul de rânduri returnate de o instrucțiune SELECT
, inclusiv NULL și duplicatele.
Code language: SQL (Structured Query Language) (sql)
Când aplicați funcția COUNT(*)
la întregul tabel, PostgreSQL trebuie să scaneze secvențial întregul tabel.
Dacă utilizați funcția COUNT(*)
pe un tabel mare, interogarea va fi lentă. Acest lucru este legat de implementarea MVCC PostgreSQL. Deoarece mai multe tranzacții văd diferite stări ale datelor în același timp, nu există o modalitate directă pentru funcția COUNT(*)
de a număra în întregul tabel, prin urmare PostgreSQL trebuie să scaneze toate rândurile.
COUNT(column)
Similară funcției COUNT(*)
, funcția COUNT(column)
returnează numărul de rânduri returnate de o clauză SELECT
. Cu toate acestea, ea nu ia în considerare valorile NULL
din column
.
Code language: SQL (Structured Query Language) (sql)
COUNT(DISTINCT column)
În această formă, COUNT(DISTINCT column)
returnează numărul de valori unice non-nule din column.
Code language: SQL (Structured Query Language) (sql)
Utilizăm adesea funcția COUNT()
cu clauza GROUP BY
pentru a returna numărul de elemente pentru fiecare grup. De exemplu, putem folosi funcția COUNT()
cu clauza GROUP BY
pentru a returna numărul de filme din fiecare categorie de filme.
Exemple de utilizare a funcției COUNT() din PostgreSQL
Să folosim tabelul payment
din baza de date de exemplu pentru demonstrație.

1) Exemplu PostgreSQL COUNT(*) exemplu
Declarația următoare utilizează funcția COUNT(*)
pentru a returna numărul de tranzacții din tabelul payment
:
Code language: SQL (Structured Query Language) (sql)
Iată rezultatul:

2) PostgreSQL COUNT(DISTINCT column) exemplu
Pentru a obține sumele distincte pe care le-au plătit clienții, se utilizează funcția COUNT(DISTINCT amount)
, așa cum se arată în exemplul următor:
Code language: SQL (Structured Query Language) (sql)

PostgreSQL COUNT() cu clauza GROUP BY
Pentru a obține numărul de plăți efectuate de către client, se utilizează clauza GROUP BY
pentru a grupa plățile în grupuri pe baza id-ului clientului și se utilizează funcția COUNT()
pentru a număra plățile pentru fiecare grup.
Următoarea interogare ilustrează ideea:
Code language: SQL (Structured Query Language) (sql)
Iată rezultatul parțial:

PostgreSQL COUNT() cu clauza HAVING
Puteți utiliza funcția COUNT
într-o clauză HAVING
pentru a aplica o condiție specifică grupurilor. De exemplu, următoarea instrucțiune găsește clienții care au făcut mai mult de 40 de plăți:
Code language: SQL (Structured Query Language) (sql)

În acest tutorial, ați învățat cum să utilizați funcția COUNT()
PostgreSQL pentru a returna numărul de rânduri dintr-un tabel.
- A fost util acest tutorial?
- DaNu
.