mysql count count distinct with examples
Aprenda sobre os usos de várias formas da função COUNT do MySQL com exemplos:
COUNT é uma função de agregação simples, mas muito eficaz e amplamente utilizada. Em palavras muito simples, é usado para COUNT o número de linhas em relação a uma determinada consulta e critérios SELECT.
Este tutorial irá explicar a sintaxe e o uso de COUNT simples, COUNT com condições, COUNT com DISTINCT, COUNT com GROUP BY, etc.
O que você aprenderá:
Vários tipos de MySQL COUNT
Modelo | Descrição | Sintaxe |
---|---|---|
CONTAR(*) | A função COUNT (*) retorna o não. de linhas recuperadas pela instrução SELECT, incluindo linhas contendo valores NULL e Duplicate | SELECIONE COUNT (*) DE {tableName} |
COUNT (Expressão) | COUNT (expressão) contaria o valor onde expressão não é nula. A expressão pode ser algo simples, como um nome de coluna, ou uma expressão complexa, como Função IF. | SELECIONE COUNT (Expressão) de {tableName} |
COUNT (Expressão DISTINCT) | COUNT (expressão DISTINCT) - a palavra-chave DISTINCT resultaria na contagem apenas de valores não nulos exclusivos em relação à expressão. Por exemplo - COUNT (DISTINCT customerName) - contaria apenas as linhas com valores distintos para o nome do cliente | SELECT COUNT (DISTINCT expression) de {tableName} |
Exemplos de MySQL COUNT
Dados de teste
Estaríamos usando as seguintes tabelas e dados para os exemplos da função MySQL COUNT.
Mesas:
# 1) Product_Details
Armazena detalhes de vários produtos em uma loja
- product_id - INT
- product_name - VARCHAR
- preço - DECIMAL
- category_id - INT (FOREIGN KEY - id da tabela Category_Details)
# 2) Category_Details:
- category_id: INT
- category_name: VARCHAR
Vamos criar as tabelas e inserir dados fictícios usando as consultas abaixo:
CREATE TABLE `product_details` ( `product_id` int NOT NULL, `product_name` varchar(100), `price` decimal(5,2), `category_id` int, FOREIGN KEY (category_id) REFERENCES category_details(category_id), PRIMARY KEY(product_id) ) CREATE TABLE `category_details` ( `category_id` int NOT NULL, `category_name` varchar(100), PRIMARY KEY(category_id) ) INSERT INTO `category_details` (`category_id`,`category_name`) VALUES (1,'FMCG'),(2,'FURNITURE'),(3,'FASHION'),(4,'APPLIANCES'),(5,'ELECTRONICS'); INSERT INTO `product_details` (`product_id`,`product_name`,`price`,`category_id`) VALUES (1,'Biscuits',0.5,1),(2,'Chocolates',1,1), (3, 'Washing Powder',5,1),(4, 'Apple IPhone', 500,5), (5, 'Batteries',2,5),(6,'Floor cleaner',2.5,1),(7,'Jeans- Levis',100,1),(8,'Mixer grinder',50,4),(9,'Capsicum',2,1),(10,'Sugar',1,1),(11,'Study Table',50,2);
Consulte as imagens das tabelas com os dados de teste, conforme criado acima.
Tabela Product_Details
perguntas e respostas da entrevista da rede pdf
Tabela Category_Details
COUNT simples
Nesta seção, veremos a função COUNT da maneira mais simplista.
Usaremos COUNT para retornar o número de linhas sem nenhuma verificação NULL ou DISTINCT.
SELECT COUNT(*) FROM product_details;
Resultado:
CONTAR(*) |
---|
onze |
Com a consulta acima, obteremos apenas o número de linhas retornadas em relação à instrução select.
COUNT com condições
Agora usaremos a função COUNT com condições ou valores de coluna.
Exemplo: Suponha que queremos contar o não. de linhas onde não há valores não nulos para nomes de produtos.
Podemos adicionar product_name (ou qualquer nome de coluna fornecido) como a expressão na função COUNT, o que resultaria em uma contagem de linhas com linhas NON NULL product_name.
SELECT COUNT(product_name) FROM product_details;
Nesse caso, a saída será 11 (pois todos os dados de teste já possuem valores para a coluna product_name)
Resultado:
COUNT (product_name) |
---|
onze |
Vamos adicionar uma nova linha, com um valor NULL para product_name.
INSERT INTO `product_details` (`product_id`,`product_name`,`price`,`category_id`) VALUES (12,NULL,0.5,1);
SELECT COUNT(product_name) from product_details;
A consulta COUNT acima retornará a contagem de todas as linhas com um product_name NON NULL.
Como inserimos uma linha com NULL product_name, isso não seria retornado nos resultados. Portanto, a saída ainda seria 11 linhas.
Resultado:
COUNT (product_name) |
---|
onze |
CONTAR com DISTINCT
Nos exemplos anteriores, usamos a função COUNT com uma expressão. Também podemos combinar a expressão com um comando DISTINCT para obter todos os valores NON NULL, que também são UNIQUE.
Vamos tentar obter DISTINCT category_id da tabela product_details.
onde está a chave de segurança da rede
SELECT COUNT(DISTINCT category_id) from product_details;
Resultado:
COUNT (DISTINCT category_id) |
---|
4 |
Como você pode ver acima - a saída é 4, que representa o número total. de category_id’s na tabela product_details.
CONTAR com GROUP BY
Vejamos um exemplo onde queremos usar COUNT junto com GROUP BY. Esta é uma combinação importante onde podemos obter uma COUNT em relação a uma coluna agrupada e analisar os dados dependendo dos diferentes valores de uma coluna agrupada de destino.
Por exemplo: Encontre o não. de produtos em cada categoria da tabela product_details.
SELECT category_id, COUNT(*) FROM product_details GROUP BY category_id;
Categoria ID | CONTAR(*) |
---|---|
1 | 7 |
dois | 1 |
4 | 1 |
5 | dois |
Como podemos ver acima, para cada categoria_id a coluna COUNT (*) representa o número de linhas pertencentes a cada categoria_id.
CONTAR com IF
Vejamos um exemplo do uso de uma condição IF dentro da função COUNT. Podemos colocar uma expressão IF dentro da função COUNT e definir o valor como NULL para a condição falsa e qualquer valor não nulo para a condição verdadeira.
Cada valor NON NULL seria contado como uma única linha com a função COUNT.
Por exemplo: Use a função COUNT para encontrar todos os produtos dentro da faixa de preço de 20 $.
SELECT COUNT(IF(price >0 AND price<20, 1, NULL)) AS count_less_than_20 FROM product_details;
Resultado:
quais são os diferentes tipos de teste
count_less_than_20 |
---|
7 |
Na consulta acima, obtivemos a COUNT de todos os produtos cuja faixa de preço está entre 0 e 20. Para a condição FALSE, definimos o valor como NULL, que não é contado, quando a linha é avaliada para diferentes valores de coluna .
COUNT With JOINS
COUNT também pode ser usado com instruções JOIN. Visto que COUNT se aplica a não. de linhas, ele pode ser usado com qualquer combinação de uma consulta operando em uma única tabela ou em várias tabelas usando JOINS.
Exemplo: Junte-se às tabelas product_details e category_details e encontre a contagem por category_name na tabela product_details.
SELECT category_name, COUNT(category_name) from product_details pd INNER JOIN category_details cd ON cd.category_id = pd.category_id GROUP BY category_name;
Resultado:
Nome da Categoria | COUNT (nome_categoria) |
---|---|
FMCG | 7 |
MOBÍLIA | 1 |
APARELHOS | 1 |
ELETRÔNICOS | dois |
Dica e truque
Usando alias de coluna para a coluna que exibe o resultado da função COUNT: Podemos usar um alias de coluna junto com a função COUNT para ter nomes de coluna definidos pelo usuário para a coluna que exibe os resultados da função COUNT.
Por exemplo: Suponha que desejamos contar o número de categorias na tabela category_details e nomear a coluna resultante como category_count, podemos usar a consulta abaixo:
SELECT COUNT(*) as category_count from category_details;
Resultado:
category_count |
---|
5 |
perguntas frequentes
P # 1) Como eu uso a função COUNT no MySQL?
Responda: A função COUNT é uma função agregada que pode ser usada de 3 maneiras.
- CONTAR(*) - Isso COUNT todas as linhas retornadas por SELECT QUERY.
- COUNT (expressão) - Isso COUNT todos os valores NON NULL para a expressão.
- COUNT (expressão DISTINCT) - Isso COUNT todos os valores NON NULL e UNIQUE contra a expressão.
Q # 2) Qual é a diferença entre Count (*) e Count (1) no SQL?
Responda: Ambas as declarações se comportam de maneira idêntica. Pela definição de COUNT do MySQL, qualquer coisa entre parênteses () é uma expressão - e qualquer valor NON NULL seria contado como 1.
Portanto, neste caso, * e 1 são tratados como NON NULL e o mesmo resultado é retornado, ou seja, o resultado de ambas as consultas abaixo seria o mesmo.
SELECT COUNT(*) from product_details; SELECT COUNT(1) from product_details;
Conclusão
Neste tutorial, aprendemos sobre a função COUNT e as diferentes variações fornecidas pelo MySQL.
Também vimos como podemos usar COUNT com diferentes cenários, como combinar COUNT com GROUP BY e escrever uma função IF dentro da função COUNT.
A função COUNT é uma das funções mais importantes e amplamente usadas no MySQL e é amplamente usada para agregar dados dependendo das condições especificadas para uma ou mais tabelas.
Leitura recomendada
- MySQL ALTER TABLE - Como adicionar colunas a uma tabela no MySQL
- Funções MySQL CONCAT e GROUP_CONCAT com exemplos
- MySQL CRIAR USUÁRIO: Como criar um novo usuário no MySQL
- Tutorial do MySQL JOIN: interno, externo, cruzado, esquerdo, direito e próprio
- MySQL LIKE - Tutorial com exemplos de sintaxe e uso
- Cláusula MySQL GROUP BY - Tutorial com exemplos
- MySQL Substring e Substring_Index Funções com exemplos
- Tutorial de criação de visualização do MySQL com exemplos de código