Olá, eu não compreendi muito bem em qual situações não podemos utilizar o when. Achei que quando tivesse funções de agregações não era possível utilizar, mas nessa aula ele utiliza mesmo com o SUM(INF.QUANTIDADE)
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Olá, eu não compreendi muito bem em qual situações não podemos utilizar o when. Achei que quando tivesse funções de agregações não era possível utilizar, mas nessa aula ele utiliza mesmo com o SUM(INF.QUANTIDADE)
Oi, Maitê! Tudo bom?
Acredito que a sua pergunta seja, na verdade, em relação à cláusula WHERE, correto? Já que não utilizamos o WHEN nas consultas desta aula. O WHERE tem como objetivo filtrar os resultados com base em uma condição específica.
No exemplo da aula, o WHERE é usado para filtrar os resultados pela condição YEAR(NF.DATA_VENDA) = 2015, ou seja, apenas serão considerados os registros de vendas do ano de 2015. Isso é feito antes de agrupar as informações por sabor e data da venda.
Desse modo, com relação às funções de agregação, é possível usar o WHERE desde que ele esteja antes da cláusula GROUP BY. Caso esteja depois, o filtro é realizando a partir do HAVING, visto que:
WHERE é aplicado diretamente nas linhas de dados e permite selecionar apenas os registros que cumprem certa condição;HAVING é aplicado aos resultados das operações de agregação (como SUM e COUNT), permitindo filtrar os conjuntos de dados já agregados.Não há uma regra fixa que determina quando devemos (ou não) trabalhar com o WHERE, Maitê, isso dependerá do contexto da nossa consulta. :)
Espero que tenha ficado mais claro! Conforme ampliamos o nosso contato com esses recursos do SQL, menos abstratos tendem a ser suas aplicações.
Se aparecem novas dúvidas, estarei por aqui.
Um abraço, Maitê!
Isso, era do WHERE que eu estava me referindo. Obrigada pela explicação