Função MySQL COUNT()

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 SELECTinstruçã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 NULLvalores 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 NULLvalores 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_demostabela:

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_demostabela:

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_demostabela:

SELECT COUNT(*) FROM count_demos;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )
Exemplo de estrela MySQL COUNT

Este exemplo usa a COUNT(*)função com uma WHEREcláusula para especificar uma condição para contar apenas linhas cujo valor na coluna  valseja 2:

SELECT COUNT(*) 
FROM count_demos
WHERE val = 2;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )
Estrela MySQL COUNT com uma cláusula WHERE

Exemplo MySQL COUNT (expressão)

Se você especificar a valcoluna na COUNT()função, a COUNT()função contará apenas linhas com valores não NULL na valcoluna:

SELECT COUNT(val) 
FROM count_demos;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Observe que dois NULLvalores 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 )
Exemplo de expressão MySQL COUNT DISTINCT

Exemplos práticos da função MySQL COUNT()

Usaremos a productstabela 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 BYcláusula para retornar o número de elementos em cada grupo.

Por exemplo, esta instrução usa a COUNT()função com a GROUP BYclá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 )
MySQL COUNT com exemplo de cláusula GROUP BY

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 HAVINGclá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 )
MySQL COUNT com exemplo de cláusula HAVING

3) Exemplo MySQL COUNT IF

Você pode usar uma expressão e funções de fluxo de controle, por exemplo, IF, IFNULLe CASE na COUNT()função para contar linhas cujos valores correspondem a uma condição.

Consulte a orderstabela a seguir do banco de dados de amostra:

A consulta a seguir é usada COUNT()com IFa função para encontrar o número de pedidos cancelados, em espera e contestados na orderstabela:

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 COUNTfunção conta apenas 1, não valores NULL, portanto, a consulta retorna o número de pedidos com base no status correspondente.

Exemplo MySQL COUNT IF

Neste tutorial, você aprendeu várias técnicas para contar o número de linhas em uma tabela usando a COUNTfunção MySQL.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *