Desvendando o Potencial da Função COUNT no SQL
Tags: sql, database, learning, programming
Published: 2023-12-04 23:07:26

Neste artigo, exploraremos em detalhes a função de agregação COUNT no SQL. 
Para ilustrar seu uso em várias situações, faremos referência a uma tabela específica contendo os seguintes registros:

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/lxdt3g905j43owwhx8g5.png)

A função COUNT é uma ferramenta fundamental para determinar o número de registros em uma seleção específica que estamos realizando em um banco de dados. Essa função possui várias aplicações e pode ser empregada de diversas maneiras.

**COUNT(*)** 

É uma função de agregação que conta o número total de registros em uma tabela, independentemente de quais colunas estão sendo consideradas. Essa função não considera nenhum critério específico, ela simplesmente conta todos os registros existentes na tabela, sem levar em consideração o valor ou a presença de dados em colunas individuais.

_Sintaxe_

```
SELECT COUNT(*) AS COUNT
  FROM FACULDADE
```

_Resultado_

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/alvtuv2u6q46nsbtlzwj.png)

**COUNT(NOME_COLUNA)**

É uma função de agregação que conta o número de registros em uma tabela onde a coluna especificada (NOME_COLUNA) não é nula. Ela é útil quando você deseja determinar quantos registros contêm informações válidas em uma coluna específica.

_Sintaxe_

```
SELECT COUNT(CURSO) AS COUNT
  FROM FACULDADE
```

_Resultado_

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/p5xqw1789f041i7u4y23.png)

Vamos agora contar quantos alunos temos em cada curso. Para isso precisaremos da função GROUP BY, ela irá agrupar todos os valores iguais, nesse caso, queremos agrupar por curso, e contar os alunos.

_Sintaxe_

```
SELECT CURSO, COUNT(ALUNO) AS QUANTIDADE_ALUNO
  FROM FACULDADE
GROUP BY CURSO
```

_Resultado_

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4az6v7uodlzh412n5kia.png)

**COUNT(1)**

Há um equívoco quanto a esse comando, já que muitas pessoas acham que ele conta todos os valores da primeira coluna, porém isso não é verdade, qualquer número ou caractere que você colocar nessa função retornará o mesmo resultado, isso porque o número em parênteses será o valor que a função COUNT irá atribuir a cada linha da tabela e depois contará quantas vezes esse valor aparece.

Aqui te mostro isso:

_Sintaxe utilizando o 1_

```
SELECT COUNT(1) AS COUNT
  FROM FACULDADE
```

_Resultado utilizando o 1_

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/guzamqv4nxazfypmswen.png)

_Sintaxe utilizando -1000_

```
SELECT COUNT(-1000) AS COUNT
  FROM FACULDADE
```

_Resultado utilizando -1000_

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3zmnv5eqqa4ocbpxs93k.png)

_Sintaxe utilizando o 'TEXTO'_

```
SELECT COUNT('TEXTO') AS COUNT
  FROM FACULDADE
```

_Resultado utilizando o 'TEXTO'_

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/h5oy6jmnc7ibt8gztdun.png)

**COUNT(DISTINCT NOME_COLUNA)**

Utilizamos o DISTINCT quando queremos os registros sem repetição de valor. No nosso exemplo, um aluno pode estar cursando mais de um curso. Sendo assim usamos o COUNT(DISTINCT ALUNO) para saber o número exato de alunos matriculados.

_Sintaxe_

```
SELECT COUNT(DISTINCT ALUNO)
  FROM FACULDADE
```

_Resultado_

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3jxfgdoa3eotp71tq4ox.png)

Em conclusão, a função de agregação COUNT no SQL é uma ferramenta poderosa e versátil para a contagem de registros em um conjunto de dados. Ela desempenha um papel fundamental na análise de dados e na geração de estatísticas essenciais. Aqui estão alguns pontos-chave a serem destacados:

1. **Contagem Precisa**: A função COUNT permite contar o número de registros em uma tabela ou em um subconjunto de registros, com base em critérios específicos definidos na cláusula WHERE. Isso é útil para obter informações precisas sobre a quantidade de dados disponíveis em um conjunto.
2. **Versatilidade**: Pode ser aplicada em diferentes cenários, desde contagem de clientes em uma lista até o acompanhamento de transações em uma base de dados financeira. Sua flexibilidade torna possível lidar com uma variedade de casos de uso.
3. **Agrupamento de Dados**: Ao usar a cláusula GROUP BY em conjunto com COUNT, é possível contar registros em grupos distintos com base em valores de colunas específicas, o que é útil para análises de dados segmentadas.
4. **Ferramenta Poderosa para Tomada de Decisões**: A capacidade de contar registros é fundamental para a tomada de decisões informadas, a geração de relatórios e a análise de tendências. A função COUNT é um recurso inestimável para profissionais de dados e analistas.
5. **Eficiência de Desempenho**: Em muitos sistemas de gerenciamento de banco de dados, a função COUNT é otimizada para fornecer resultados rapidamente, mesmo em grandes conjuntos de dados.

Em resumo, a função de agregação COUNT é um elemento central no arsenal de ferramentas SQL e desempenha um papel crucial na obtenção de informações quantitativas a partir de bancos de dados. Dominar seu uso é fundamental para profissionais que desejam explorar, analisar e interpretar dados de maneira eficaz. Ao aproveitar todo o potencial da função COUNT, você estará melhor preparado para tomar decisões informadas com base em dados sólidos e confiáveis.

Se você deseja testar esses comandos sem a necessidade de configurar um ambiente, você pode utilizar o site http://sqlfiddle.com/#!18. Nesse site, você tem a opção de escolher o Sistema de Gerenciamento de Banco de Dados (SGBD) que deseja usar e pode comparar as diferenças entre as sintaxes. Para os exemplos deste artigo, utilizei o MS SQL SERVER 2017.