Oii Gustavo, como você está?
Imagino que seja bastante difícil, mesmo, lembrar de conceitos vistos há tanto tempo. Mas, tenho certeza que revisar e praticar vai te dar a oportunidade de ter uma visão madura e sólida sobre a lógica por trás do SQL.
Antes de falarmos sobre essa instrução que você compartilhou, vou te recomendar a nossa formação Modelagem de Dados. Nela, passamos pelo processo de abstrair algo do mundo real e transformá-lo em um banco de dados físico, que habitará um SGBD como o Oracle, por exemplo. Um dos cursos dessa formação, inclusive, fala sobre os princípios matemáticos por trás do SQL: a Algebra Relacional. Esse é o curso que pode realmente responder sua pergunta sobre como aplicar o raciocínio para chegar nas instruções mais complexas, porém, toda a formação fornece um conhecimento muito valioso para quem trabalha com banco de dados.
Já sobre a instrução SQL que você compartilhou:
A subconsulta (SELECT INF.CODIGO_DO_PRODUTO FROM ITENS_NOTAS_FISCAIS INF INNER JOIN TABELA_DE_PRODUTOS TP ON INF.CODIGO_DO_PRODUTO = TP.CODIGO_DO_PRODUTO GROUP BY INF.CODIGO_DO_PRODUTO, TP.NOME_DO_PRODUTO HAVING SUM(INF.QUANTIDADE) > 394000)
será executada antes da consulta principal, por baixo dos panos. Ela retorna os códigos dos produtos que possuem uma quantidade total vendida superior a 394.000. Na subconsulta, temos cálculos, agrupamento e junções. É interessante conhecer cada um desses comandos com conforto para então partir para consultas mais complexas.
Essa subconsulta é usada como critério para filtrar os produtos na tabela TABELA_DE_PRODUTOS, por meio da cláusula IN
. Já a instrução SELECT DISTINCT SABOR
retorna apenas os sabores dos produtos que atendem ao critério estabelecido.
Uma dica importante para construir consultas complexas é fazer por etapas. Resolva cada parte individualmente, por exemplo, a escolha das colunas, a seleção da tabela, a aplicação de condições e assim por diante. Assim, você pode compreender como cada parte se comporta individualmente e como se comunicam, vendo a consulta se estruturar um pouquinho de cada vez.
Além disso, é importante conhecer bem a estrutura dos seus dados e ter clareza sobre quais perguntas precisam ser respondidas.
Espero ter ajudado, Gustavo! Conte com o fórum sempre que precisar de uma ajudinha em seus estudos. Estamos por aqui.
Abraços.
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!