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

DÚVIDA_01_CONSULTAS AVANÇADAS SQL SERVER 2017 /05/ LISTANDO EXPRESSÃO NATURAL

Prezado (a).

No exercício proposto ( https://cursos.alura.com.br/course/consultas-sql-server-2017/task/39043 ), não compreendi o gabarito na marcação vermelha:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

DÚVIDA:

Até onde entendi, na função GROUP BY é necessário colocar as variáveis existentes no select. Entretanto, no gabarito a função GROUP BY tem:

1) variável TC.NOME (da TABELA DE CLIENTES) e

2) variável DATA ( da TABELA NOTAS FISCAIS)

Afinal, qual a lógica que deve ser feita??

2 respostas
solução!

Olá Thiago, tudo bem?

Utilizamos o GROUP BY quando temos uma função de agregação(SUM, MAX, AVG..) na nossa query. Então, quando especificamos os campos que queremos retornar no select, precisamos informar todos no GROUP BY, mesmos que esses campos sejam de tabelas distintas, com exceção dos que estão fazendo parte da função de agregação, é como se estivéssemos dizendo como queremos que os dados que estão sendo agregados sejam agrupados e retornados.

Nesta query da atividade, temos quatro campos sendo informados no select, o campo Nome,Data, Quantidade e Preço. Porém os campos Quantidade e Preço fazem parte da função de agregação SUM, então eles não precisam estar no GROUP BY.

Query apresentada na opnião do instrutor na atividade

Já os campos Nome e Data que não estão em uma função de agregação, precisam ser informados no GROUP BY. A ordem que os valores serão agrupados, é a que será informada no GROUP BY, então primeiro os valores serão agrupados por nome e depois pela data.

Então, primeiro é realizado o agrupamento pelos clientes que faturaram no ano de 2016 e dentro deste agrupamento é realizado um outro agrupamento, que é o valor individual de cada cliente para o ano de 2016

Espero ter ajudado e bons estudos!