Select count SQL: entenda como usar essa função no SQL (select count(*), count(1) e count(nome)

Guilherme Silveira
Guilherme Silveira

Compartilhe

Se você quer aprender como usar o comando count no SQL para contar registros, linhas ou valores não nulos em uma tabela, este artigo traz exemplos práticos com select count(*), count(1) e count(nome).

Descubra como a função count SQL é aplicada na prática, diferença entre os comandos e como garantir contagem correta de registros no banco de dados. 

SQL SELECT e função count() 

Quando vamos usar count no banco de dados nos deparamos com várias opções do SQL. Conheça as diferenças entre as várias possibilidades de contar linhas em uma tabela usando count. 

Ábaco colorido representando contagem e cálculo de dados em SQL 
Banner da Escola de Data Science: Matricula-se na escola de Data Science. Junte-se a uma comunidade de mais de 500 mil estudantes. Na Alura você tem acesso a todos os cursos em uma única assinatura; tem novos lançamentos a cada semana; desafios práticos. Clique e saiba mais!

Como contar linhas no SQL com select count(): exemplos práticos 

Muitas pessoas buscam uma maneira simples de utilizar o comando SQL select count para obter o total de registros de uma tabela. Veja como aplicar select count(*) from tabela na prática. 

Por exemplo, imagine que quero verificar quantos produtos estão cadastrados em uma empresa: 

select count(nome) from Produtos;  
> 198

No entanto, observe a diferença ao contar outro campo: 

select count(id) from Produtos;  
> 200

Esse resultado pode causar estranhamento: por que a contagem é diferente? SQL pirou? 

select id, nome from Produtos where nome is null;  
> 190, null  
> 196, null

O que é select count SQL? Como usar a função count para contar registros e valores no banco de dados 

O select count verifica o número de linhas (conta as linhas) não nulas dentro do count que você quer fazer! Se tinha nome nulo, não contou! Resultado? Zoou. 

Como usar count no SQL para contar apenas valores não nulos 

Muito cuidado com seus counts. Então o que devo contar? Se você quer contar valores não nulos, use o count(campo), como fizemos no exemplo abaixo: 

select count(nome) from Produtos;  
> 198

Como usar select count(*) no SQL para contar todos os registros da tabela 

Mas se quer contar todas as linhas, inclusive aquelas com valores nulos, utilize count(*) para não correr risco. Esse comando vai contar o número de registros retornados, independentemente de valores nulos: 

select count(*) from Produtos;  
> 200

O que é count(1) no SQL? Diferença entre count(*), count(1) e count(campo) 

E quanto ao count(1)? Para que serve essa opção? 

select count(1) from Produtos;  
> 200

O count(1) funciona de forma idêntica ao count() - ambos contam todas as linhas da tabela.  

Em bancos modernos (MySQL, PostgreSQL, SQL Server), o otimizador de queries converte COUNT(1) em COUNT() internamente, resultando no mesmo plano de execução e performance equivalente.  

A preferência por COUNT(*) se dá pela clareza: ele indica explicitamente que está contando todas as linhas, tornando o código mais legível para outros desenvolvedores. 

Desafio: count(), count (*) e count (1) 

Como disse, eu prefiro usar o count(*)... e você, conta estrelas, conta um ou conta id? 

Fica agora o desafio: qual o resultado da SQL a seguir? 

select count(1) from Produtos;  
> 200

Resposta esperada: 0 (zero). Mesmo que existam linhas onde nome é NULL, COUNT(nome) sempre ignora valores NULL. Portanto, ao filtrar apenas por linhas NULL e contar um campo NULL, o resultado será sempre zero.  

Se você quer contar quantas linhas TÊM valor NULL em nome, use: SELECT COUNT(*) FROM Produtos WHERE nome IS NULL. 

Desenvolva-se no assunto:

Desenvolva suas habilidades em SQL e aprenda a trabalhar com dados de forma mais precisa e estratégica.

Domine funções essenciais como COUNT(), entenda como os dados realmente se comportam no banco e evite erros comuns que podem impactar suas análises.

Com uma base sólida em consultas e manipulação de dados, você evolui com mais confiança para atuar em áreas como análise e engenharia de dados.

Comece agora sua jornada em SQL na Alura e avance com uma trilha prática, estruturada e alinhada ao mercado.

Guilherme Silveira
Guilherme Silveira

Co-fundador da Alura. Com mais de 20 anos de ensino de tecnologia, criou mais de 100 cursos. Possui formação em engenharia de software, viés matemático e criativo, além de ser medalhista de ouro em competições nacionais de computação, tendo representado o Brasil nos mundiais. Participante de comunidades open source e de educação em tecnologia, tendo escrito 7 livros. Faz mágica e fala coreano no tempo livre.

Veja outros artigos sobre Data Science