Contagem MySQL combinando registros com COUNT

Mysql Count Matching Records With Count



A redundância de dados ocorre por vários motivos. Várias das tarefas complicadas com as quais você deve lidar ao trabalhar com sistemas de banco de dados é tentar descobrir valores duplicados. Para este propósito, usaremos o método de agregação COUNT (). O método COUNT () retorna a soma das linhas que residem em uma tabela específica. A função COUNT () permite somar todas as linhas ou apenas as linhas que correspondem à condição definida. Neste guia, você saberá como identificar valores duplicados para uma ou mais colunas MySQL usando COUNT (). O método COUNT () possui os três tipos a seguir:

  • CONTAR(*)
  • COUNT (expressão)
  • COUNT (expressão DISTINCT)

Certifique-se de que você possui o MySQL instalado em seu sistema. Abra o shell do cliente da linha de comando do MySQL e digite sua senha para continuar. Veremos alguns exemplos de contagem dos valores correspondentes usando o método COUNT ().









Temos uma tabela 'social' em nosso esquema de 'dados'. Vamos verificar seu registro por meio da seguinte consulta.



>> SELECIONE * A PARTIR DE dados .Social;





MySQL COUNT (*)

O método COUNT (*) é usado para contar o número de linhas que residem na tabela ou contar o número de linhas de acordo com a condição fornecida. Para verificar o número total de linhas em uma tabela, 'social' tente a consulta abaixo. Temos um total de 15 linhas na tabela de acordo com o resultado.

>> SELECIONE CONTAR (*) A PARTIR DE dados .Social;



Dê uma olhada no método COUNT (*) enquanto define algumas condições. Temos que buscar o número de linhas onde o nome de usuário é o mesmo que ‘Mustafa’. Você pode ver que temos apenas 4 registros para este nome específico.

>> SELECIONE CONTAR (*) A PARTIR DE dados .Social ONDE Do utilizador ='Mustafa';

Para obter a soma total das linhas em que o site dos usuários é ‘Instagram’, tente a consulta indicada abaixo. A tabela ‘social’ possui apenas 4 registros para o site ‘Instagram’.

>> SELECIONE CONTAR (*) A PARTIR DE dados .Social ONDE Local na rede Internet='Instagram';

Para recuperar o número total de linhas em que a 'Idade' é maior que 18 é o seguinte:

>> SELECIONE CONTAR (*) A PARTIR DE dados .Social ONDE Era> 18;

Vamos buscar os dados das colunas ‘Usuário’ e ‘Site’ em uma tabela, onde o nome do usuário começa com o alfabeto ‘M’. Experimente as instruções abaixo no shell.

>> SELECIONE Do utilizador ,Local na rede Internet A PARTIR DE dados .Social ONDE Do utilizador gostar ‘M%';

MySQL COUNT (expressão)

No MySQL, o método COUNT (expressão) é usado apenas quando você deseja contar valores não nulos da coluna ‘expressão’. A 'expressão' seria o nome de qualquer coluna. Vamos dar um exemplo simples disso. Contamos apenas os valores não nulos de uma coluna ‘Site’, que está relacionado à coluna ‘Idade’ tendo um valor igual a ‘25’. Ver! Temos apenas 4 registros não nulos para usuários com '25 anos' de idade, que usam sites.

>> SELECIONE CONTAR (Local na rede Internet) A PARTIR DE dados .Social ONDE Era= 25;

MySQL COUNT (expressão DISTNCT)

No MySQL, o método COUNT (DISTINCT expression) é usado para somar valores não nulos e valores distintos da coluna ‘expression’. Para contar um número distinto de valores não nulos na coluna ‘Idade’, usamos a consulta abaixo. Você encontrará 6 registros não nulos e distintos da coluna 'Idade' da tabela 'social'. Isso significa que temos um total de 6 pessoas com idades diferentes.

>> SELECIONE CONTAR ( DISTINTO Era) A PARTIR DE dados .Social;

MySQL COUNT (IF (expressão))

Para maior ênfase, você deve mesclar COUNT () com funções de controle de fluxo. Para começar, para uma parte da expressão que está sendo usada no método COUNT (), você pode usar a função IF (). Pode ser muito útil fazer isso para fornecer uma análise rápida das informações dentro de um banco de dados. Estaremos contando o número de linhas com diferentes condições de idade e dividindo-as em três colunas diferentes, que podem ser chamadas de categorias. Primeiro, COUNT (IF) contará as linhas com idade inferior a 20 e salvará essa contagem em uma nova coluna chamada ‘Adolescente’. O segundo COUNT (IF) conta as linhas com idades entre 20 e 30 anos enquanto salva em uma coluna ‘Jovem’. Terceiro, o último conta as linhas com idades superiores a 30 e salvas em uma coluna ‘Madura’. Temos 5 adolescentes, 9 jovens e apenas 1 adulto em nosso cadastro.

>> SELECIONE CONTAR ( E SE (Era< vinte,1, NULO ))'Adolescência', CONTAR ( E SE (Era ENTRE vinte E 30,1, NULO ))'Novo', CONTAR ( E SE (Era> 30,1, NULO ))'Maduro' A PARTIR DE dados .Social;

MySQL COUNT (*) com cláusula GROUP BY

A instrução GROUP BY é uma instrução SQL usada para linhas de grupo com os mesmos valores. Ele retorna o número total de valores residentes em cada grupo. Por exemplo, se você quiser verificar o número de cada usuário separadamente, você deve definir a coluna ‘Usuário’ com a cláusula GROUP BY enquanto conta os registros de cada usuário com COUNT (*).

>> SELECIONE Do utilizador , CONTAR (*) A PARTIR DE dados .Social GRUPO POR Do utilizador ;

Você pode selecionar mais de duas colunas enquanto realiza a contagem de linhas junto com a cláusula GROUP BY, como segue.

>> SELECIONE Do utilizador ,Era,Local na rede Internet, CONTAR (*) A PARTIR DE dados .Social GRUPO POR Local na rede Internet;

Se quisermos contar linhas enquanto usamos a cláusula WHERE com algumas condições ao lado de GROUP BY e COUNT (*), você também pode fazer isso. A consulta abaixo buscará e contará os registros das colunas: ‘Usuário’, ‘Site’ e ‘Idade’, onde o valor do site é ‘Instagram’ e ‘Snapchat’ apenas. Você pode ver que temos apenas 1 registro para ambos os sites para usuários diferentes.

>> SELECIONE Do utilizador ,Local na rede Internet,Era, CONTAR (*) A PARTIR DE dados .Social ONDE Local na rede Internet='Instagram' Ou Local na rede Internet=‘Snapchat’ GRUPO POR Local na rede Internet,Era;

MySQL COUNT (*) com cláusula GROUP BY e ORDER BY

Vamos tentar as cláusulas GROUP BY e ORDER BY em conjunto com o método COUNT (). Vamos buscar e contar as linhas da tabela 'social' enquanto organizamos os dados em ordem decrescente usando esta consulta:

>> SELECIONE Do utilizador ,Local na rede Internet,Era, CONTAR (*) A PARTIR DE dados .Social GRUPO POR Era ORDENAR POR CONTAR (*) DESC ;

A consulta abaixo indicada contará primeiro as linhas e, em seguida, exibirá os únicos registros com COUNT maior que 2 em ordem crescente.

>> SELECIONE Do utilizador ,Era, CONTAR (*) A PARTIR DE dados .Social GRUPO POR Era TENDO CONTAR (*) > 2 ORDENAR POR CONTAR (*) ASC ;

Conclusão

Examinamos todos os métodos possíveis para contar os registros correspondentes ou duplicados usando o método COUNT () com diferentes outras cláusulas.