Com o objetivo de premiar seu melhor vendedor, uma loja con...
pedido id_pedido id_cliente id_vendedor total
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Alternativa correta: C
A questão aborda o tema de agrupamento e subconsulta (subquery) no SQL, que são conceitos fundamentais para quem trabalha com bancos de dados relacionais. Para resolver essa questão, o aluno precisa entender como o comando GROUP BY é utilizado para agrupar linhas que possuem os mesmos valores em colunas específicas e como a função de agregação SUM() é utilizada para calcular a soma de um conjunto de valores. Além disso, é essencial conhecer o comando ORDER BY para ordenar os resultados e a cláusula LIMIT para restringir o número de linhas retornadas.
O objetivo da consulta é encontrar o id_vendedor cuja soma de vendas é a mais alta. A alternativa correta precisa agrupar as vendas por vendedor, calcular a soma total para cada um e então comparar essa soma para encontrar o maior valor.
Na alternativa C, o comando SQL faz exatamente isso:
Explicação da consulta:
- O GROUP BY id_vendedor agrupa todos os pedidos por vendedor.
- O SUM(total) calcula a soma dos valores de todos os pedidos de cada vendedor.
- A subconsulta, que está entre parênteses e começa com SELECT SUM(total)..., ordena os vendedores pelo total de vendas em ordem decrescente e utiliza o LIMIT 0,1 para retornar o valor mais alto.
- O HAVING SUM(total) = (...) compara a soma dos totais de cada vendedor com a maior soma de total retornada pela subconsulta.
Isso significa que a consulta principal selecionará apenas o vendedor cuja soma das vendas corresponda à maior soma encontrada pela subconsulta. Dessa forma, o resultado final será o id_vendedor do vendedor com o maior valor total de vendas, que é exatamente o que a loja desejava para premiar seu melhor vendedor.
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo
Comentários
Veja os comentários dos nossos alunos
GABARITO: LETRA C
DESC LIMIT 0,1
0 => índice inicial
2 => número de resultados pretendidos.
Fonte: https://www.devmedia.com.br/sql-limit/41216
A clausula LIMIT pode ser usada com OFFSET explícito: LIMIT <número de linhas> OFFSET <linhas a serem puladas>
Mas também de maneira implícita, onde a ordem que se passa os parametros é inversa, ou seja, primeiro as linhas a serem puladas, depois o número de linhas que se deseja:
LIMIT <linhas a serem puladas>,<número delinhas desejado>;
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo