Contabilização do PostgreSQL
A função `COUNT` no PostgreSQL é utilizada para retornar o número de linhas de entrada que correspondem a uma condição específica de uma consulta. É comumente utilizado em instruções `SELECT` para fornecer uma contagem de linhas em uma tabela ou o número de valores exclusivos em uma coluna.
Uso
A função `COUNT` determina o número de linhas que atendem a determinados critérios ou conta o número de valores em uma coluna. Ele pode ser aplicado a todas as linhas, valores de coluna distintos ou condições específicas.
SELECT COUNT(column_name)
FROM table_name
[WHERE condition];
Nessa sintaxe, `COUNT(column_name)` conta o número de valores não nulos na coluna especificada, enquanto `COUNT(*)` conta todas as linhas, inclusive aquelas com valores nulos.
Exemplos
1. Contagem básica de todas as linhas
SELECT COUNT(*)
FROM orders;
Esse exemplo retorna o número total de linhas na tabela `orders`, incluindo aquelas com valores nulos.
2. Contagem de valores não nulos em uma coluna
SELECT COUNT(customer_id)
FROM orders;
Aqui, a função `COUNT` retorna o número de entradas não nulas na coluna `customer_id` da tabela `orders`.
3. Contagem com uma condição
SELECT COUNT(*)
FROM orders
WHERE order_status = 'completed';
Esse exemplo conta apenas as linhas em que o `order_status` é `'completed'`, fornecendo informações sobre subconjuntos específicos de dados.
4. Contagem de valores únicos não nulos em uma coluna
SELECT COUNT(DISTINCT customer_id)
FROM orders;
Esse exemplo conta valores distintos não nulos na coluna `customer_id`, identificando entradas exclusivas de clientes.
Dicas e práticas recomendadas
- Use `COUNT(*)` para contar todas as linhas. Isso inclui linhas com valores nulos e é eficiente para a contagem total de linhas.
- Use `COUNT(column_name)` para ignorar os nulos. Conta entradas não nulas em uma coluna específica, o que é útil para descobrir quantas entradas válidas existem.
- Combine com `WHERE` para obter contagens filtradas. Aplique condições para restringir o resultado da contagem a critérios específicos.
- Use `COUNT(DISTINCT column_name)` para obter contagens únicas e não nulas. Isso garante a contagem de valores distintos, o que é útil para identificar entradas exclusivas.
- Considere os impactos no desempenho. Para grandes conjuntos de dados, otimize as consultas usando índices ou reestruturando-as para melhorar o desempenho das operações `COUNT`.