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)
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