Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] Qual a ordem dos comandos no SQL

Olá, boa noite.

Nesta atividade fiz inicialmente esse comando e retornou erro:

SELECT CODIGO_DO_PRODUTO, SUM(QUANTIDADE) AS QUANTIDADE_VENDAS FROM ITENS_NOTAS_FISCAIS GROUP BY CODIGO_DO_PRODUTO ORDER BY QUANTIDADE_VENDAS DESC HAVING SUM(QUANTIDADE) > 394000;

Em consulta a opinião do instrutor foi esse comando: SELECT CODIGO_DO_PRODUTO, SUM(QUANTIDADE) AS QUANTIDADE_VENDAS FROM ITENS_NOTAS_FISCAIS GROUP BY CODIGO_DO_PRODUTO HAVING SUM(QUANTIDADE) > 394000 ORDER BY QUANTIDADE_VENDAS DESC;

Alterando somente as ordem entre HAVING e ORDER BY.

A ordem correta é sempre GROUP BY, HAVING e ORDER BY? Como saber essa ordem correta?

Obrigada!

1 resposta
solução!

Oi, Isabel, tudo bem?

No SQL, a ordem dos comandos é crucial e deve seguir uma sequência específica para que o banco de dados possa interpretar e executar a consulta corretamente. A ordem correta dos comandos, após o SELECT, é:

  1. FROM: especifica a tabela de onde os dados serão retirados.
  2. WHERE: aplica filtros antes de agrupar os dados, se necessário.
  3. GROUP BY: agrupa as linhas que têm os mesmos valores em colunas especificadas.
  4. HAVING: aplica filtros após os dados já estarem agrupados.
  5. ORDER BY: ordena o resultado final da consulta.

Portanto, a consulta correta e eficiente que você mencionou e que foi sugerida pelo instrutor é:

SELECT CODIGO_DO_PRODUTO, SUM(QUANTIDADE) AS QUANTIDADE_VENDAS 
FROM ITENS_NOTAS_FISCAIS 
GROUP BY CODIGO_DO_PRODUTO 
HAVING SUM(QUANTIDADE) > 394000 
ORDER BY QUANTIDADE_VENDAS DESC;

Nesta consulta:

  • Primeiro, agrupamos os produtos por CODIGO_DO_PRODUTO usando GROUP BY.
  • Depois, filtramos esses grupos com HAVING, onde a soma das quantidades é maior que 394000.
  • Finalmente, ordenamos os resultados por QUANTIDADE_VENDAS em ordem decrescente com ORDER BY.

Sempre que estiver em dúvida sobre a ordem dos comandos, você pode se referir a esta sequência. Praticar também ajuda a memorizar e entender melhor como cada parte da consulta afeta o resultado.

Espero ter ajudado. Caso tenha dúvidas, conte com o fórum. Abraços!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!