Resumo : neste tutorial você aprenderá como usar a COUNT()
função MySQL para retornar o número de linhas de uma tabela.
Introdução à função MySQL COUNT()
A COUNT()
função é uma função agregada que retorna o número de linhas em uma tabela. A COUNT()
função permite contar todas as linhas ou apenas as linhas que correspondem a uma condição especificada.
A COUNT()
função tem três formas:
COUNT(*)
COUNT(expression)
COUNT(DISTINCT expression)
Função CONTAGEM(*)
A COUNT(*)
função retorna o número de linhas em um conjunto de resultados retornado por uma SELECT
instrução. O COUNT(*)
retorna o número de linhas, incluindo linhas duplicadas, não NULL e NULL
.
CONTAR(expressão)
O COUNT(expression)
retorna o número de linhas que não contêm NULL
valores como resultado da expressão.
CONTAR(expressão DISTINTA)
O COUNT(DISTINCT expression)
retorna o número de linhas distintas que não contêm NULL
valores como resultado da expressão.
O tipo de retorno da COUNT()
função é BIGINT
. A COUNT()
função retorna 0 se nenhuma linha correspondente for encontrada.
Ilustração da função MySQL COUNT()
Configurando uma tabela de exemplo
Primeiro, crie uma tabela chamada count_demos
:
CREATE TABLE count_demos (
id INT AUTO_INCREMENT PRIMARY KEY,
val INT
);
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Segundo, insira algumas linhas na count_demos
tabela:
INSERT INTO count_demos(val)
VALUES(1),(1),(2),(2),(NULL),(3),(4),(NULL),(5);
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Terceiro, consulte os dados da count_demos
tabela:
SELECT * FROM count_demos;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Exemplo MySQL COUNT(*)
A instrução a seguir usa a COUNT(*)
função para retornar todas as linhas da count_demos
tabela:
SELECT COUNT(*) FROM count_demos;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Este exemplo usa a COUNT(*)
função com uma WHERE
cláusula para especificar uma condição para contar apenas linhas cujo valor na coluna val
seja 2:
SELECT COUNT(*)
FROM count_demos
WHERE val = 2;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Exemplo MySQL COUNT (expressão)
Se você especificar a val
coluna na COUNT()
função, a COUNT()
função contará apenas linhas com valores não NULL na val
coluna:
SELECT COUNT(val)
FROM count_demos;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Observe que dois NULL
valores não são contados.
Exemplo MySQL COUNT (expressão DISTINCT)
Este exemplo usa COUNT(DISTINCT expression)
para contar valores não NULL e distintos na coluna val
:
SELECT COUNT(DISTINCT val)
FROM count_demos;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Exemplos práticos da função MySQL COUNT()
Usaremos a products
tabela do banco de dados de exemplo para os próximos exemplos:
1) Usando a função MySQL COUNT(*) com um exemplo GROUP BY
A COUNT(*)
função é frequentemente usada com uma GROUP BY
cláusula para retornar o número de elementos em cada grupo.
Por exemplo, esta instrução usa a COUNT()
função com a GROUP BY
cláusula para retornar o número de produtos em cada linha de produtos:
SELECT
productLine,
COUNT(*)
FROM
products
GROUP BY productLine;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Da mesma forma, este exemplo usa a COUNT(*)
função para encontrar o número de produtos fornecidos por cada fornecedor:
SELECT
productVendor,
COUNT(*)
FROM
products
GROUP BY productVendor
ORDER BY COUNT(*) DESC;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
2) Usando MySQL COUNT(*) com um exemplo de cláusula HAVING
Para encontrar fornecedores que fornecem pelo menos 9 produtos, você usa a COUNT(*)
função na HAVING
cláusula conforme mostrado na consulta a seguir:
SELECT
productVendor,
COUNT(*)
FROM
products
GROUP BY productVendor
HAVING COUNT(*) >= 9
ORDER BY COUNT(*) DESC;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
3) Exemplo MySQL COUNT IF
Você pode usar uma expressão e funções de fluxo de controle, por exemplo, IF
, IFNULL
e CASE
na COUNT()
função para contar linhas cujos valores correspondem a uma condição.
Consulte a orders
tabela a seguir do banco de dados de amostra:
A consulta a seguir é usada COUNT()
com IF
a função para encontrar o número de pedidos cancelados, em espera e contestados na orders
tabela:
SELECT
COUNT(IF(status = 'Cancelled', 1, NULL)) 'Cancelled',
COUNT(IF(status = 'On Hold', 1, NULL)) 'On Hold',
COUNT(IF(status = 'Disputed', 1, NULL)) 'Disputed'
FROM
orders;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
A IF()
função retorna 1 se o status do pedido for cancelado, suspenso ou contestado, caso contrário, retorna NULL
.
A COUNT
função conta apenas 1, não valores NULL, portanto, a consulta retorna o número de pedidos com base no status correspondente.
Neste tutorial, você aprendeu várias técnicas para contar o número de linhas em uma tabela usando a COUNT
função MySQL.