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

Para que o uso de GROUP BY neste caso?

Bom dia! Ao rever o exercício percebi que não entendi a necessidade do GROUP BY nesse caso, alguém poderia me explicar qual o motivo de precisar usar? Agradeço desde já.

6 respostas

João, boa tarde

Não sei a qual query se refere, mas o group by sempre realiza o agrupamento por valores iguais a fim de usar uma função agregada como um MAX, SUM, COUNT, ou mesmo exibir sem repetição, mas para isso existe o DISTINCT.

Se eu consegui te ajudar, marque a resposta como solucionada, por favor! Abs.

Ahh sim, mas pelo que eu estava entendendo durante o curso no group by devemos colocar a coluna a qual vamos agrupar certo? Então por que a partir de certo ponto o instrutor colocou várias colunas lá? Eu sei que tá certo que o group by deve ter todas as colunas que não estão em nenhuma função se não me engano, só queria entender isso mesmo.

solução!

Você está correto.

Quando vc coloca muitas colunas dentro do group by significa que vc precisa de mais detalhes no agrupamento.

Aqui vc quer apenas o total no ano. Aparecerá apenas uma linha na resposta agrupada.

SELECT SUM(QUANTIDADE), YEAR(DATAATUAL) FROM TABELA GROUP BY YEAR(DATAATUAL)

Aqui vc verá 12 linhas. Aparecerá agrupado por mês.

SELECT SUM(QUANTIDADE), YEAR(DATAATUAL), MONTH(DATAATUAL) FROM TABELA GROUP BY YEAR(DATAATUAL),MONTH(DATAATUAL)

Então para agrupar por mês eu tenho que colocar no GROUP BY as colunas de ano e mês, não posso colocar só mês?

Pode colocar de mês apenas, caso queira ver a soma mês a mês de todos os anos que vc tiver na tabela.

Se você tiver, por exemplo, datas de 3 anos na tabela, terá como resultado 36 linhas, mês a mês.

Mas se o usuário pediu apenas do ano atual, você deve colocar o ano no group by também. Tudo vai depender da regra do negócio.

Aah sim, entendi. Obrigado Murilo!!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software