Resumo: neste tutorial, você aprenderá como usar a função PostgreSQL COUNT()
para contar o número de linhas em uma tabela.
Função PostgreSQL COUNT()
Função COUNT()
é uma função agregada que permite a você obter o número de linhas que correspondem a uma condição específica de uma consulta.
A seguinte instrução ilustra várias maneiras de usar a COUNT()
function.
COUNT(*)
The COUNT(*)
function retorna o número de linhas retornadas por uma instrução SELECT
, incluindo NULL e duplicatas.
Code language: SQL (Structured Query Language) (sql)
Quando você aplica a função COUNT(*)
a toda a tabela, o PostgreSQL tem que digitalizar a tabela inteira sequencialmente.
Se você usar a função COUNT(*)
em uma tabela grande, a consulta será lenta. Isto está relacionado com a implementação do MVCC do PostgreSQL. Como múltiplas transações vêem diferentes estados de dados ao mesmo tempo, não há uma maneira direta para a função COUNT(*)
contar em toda a tabela, portanto o PostgreSQL deve varrer todas as linhas.
COUNT(column)
Similiar à função COUNT(*)
, a função COUNT(column)
retorna o número de linhas retornadas por uma cláusula SELECT
. No entanto, não considera NULL
valores no column
.
Code language: SQL (Structured Query Language) (sql)
COUNT(DISTINCT column)
Neste formulário, o COUNT(DISTINCT column)
retorna o número de valores únicos não-nulos no column.
Code language: SQL (Structured Query Language) (sql)
Usamos frequentemente a função COUNT()
com a cláusula GROUP BY
para retornar o número de itens para cada grupo. Por exemplo, podemos usar a função COUNT()
com a cláusula GROUP BY
para retornar o número de filmes em cada categoria de filme.
PostgreSQL COUNT() exemplos de funções
Vamos usar a tabela payment
na base de dados de amostra para a demonstração.
1) Exemplo de PostgreSQL COUNT(*)
A seguinte declaração usa a função COUNT(*)
para retornar o número de transações na tabela payment
:
Code language: SQL (Structured Query Language) (sql)
Aqui está a saída:
2) exemplo de PostgreSQL COUNT(coluna DISTINCT)
Para obter os valores distintos que os clientes pagaram, você usa a função COUNT(DISTINCT amount)
como mostrado no exemplo a seguir:
Code language: SQL (Structured Query Language) (sql)
PostgreSQL COUNT() com cláusula GROUP BY
Para obter o número de pagamentos pelo cliente, use a cláusula GROUP BY
para agrupar os pagamentos em grupos baseados no id do cliente, e use a função COUNT()
para contar os pagamentos de cada grupo.
A seguinte consulta ilustra a ideia:
Code language: SQL (Structured Query Language) (sql)
Aqui está a saída parcial:
PostgreSQL COUNT() com cláusula HAVING
Pode usar a função COUNT
numa cláusula HAVING
para aplicar uma condição específica aos grupos. Por exemplo, a seguinte declaração encontra clientes que fizeram mais de 40 pagamentos:
Code language: SQL (Structured Query Language) (sql)
Neste tutorial, você aprendeu como usar a função PostgreSQL COUNT()
para retornar o número de linhas em uma tabela.