Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Dúvida no count

por que quando eu executo o comando

 select EMBALAGEM , COUNT(*) as CONTADOR from tabela_de_produtos;

ele retorna em embalagem garrafa e no contador 31 ? eu sei que tem 31 linhas mas porque em embalagem se chama garrafa ? não acho que tenha 31 garrafas por que quando uso o comando

 select EMBALAGEM , COUNT(*) as CONTADOR from tabela_de_produtos group by EMBALAGEM

vejo que tem 11 garrafas. obrigado.

2 respostas
solução!

Olá, Daniel, tudo bem?

A função de agregação COUNT, retorna uma contagem dos registros existentes em um conjunto de valores. Em outros bancos de dados, como o SQL Server, quando utilizamos uma função de agregação, precisamos também utilizar a cláusula GROUP BY, pois é necessário especificar por quais campos queremos realizar o agrupamento dos registros.

No caso do MySQL, não precisamos utilizar a cláusula GROUP BY ao utilizar uma função de agregação, porém o retorno da consulta, não é feito de forma exata, como no caso da sua primeira query.

select EMBALAGEM , COUNT(*) as CONTADOR from tabela_de_produtos;

Na primeira query, como não foi informado como seria feito o agrupamento, do campo embalagem foi retornado o primeiro valor encontrado, juntamente com a contagem de todas as linhas da tabela realizada pelo COUNT.

select EMBALAGEM , COUNT(*) as CONTADOR from tabela_de_produtos group by EMBALAGEM

Ao executar a segunda query, utilizando a cláusula GROUP BY, foi retornada uma contagem de todas as linhas da tabela de produtos por embalagem, ou seja, para cada tipo de embalagem foi retornada a quantidade existente na tabela.

Espero ter ajudado e bons estudos!

Obrigado, agora entendi.