Analise a consulta SQL a seguir. Linha 1: SELECT cidade, es...
Analise a consulta SQL a seguir.
Linha 1: SELECT cidade, estado, COUNT(*)
Linha 2: FROM clientes
Linha 3: GROUP BY cidade, estado
Linha 4: UNION ALL Linha 5: SELECT cidade, estado, COUNT(*)
Linha 6: FROM empregados
Linha 7: GROUP BY cidade, estado
Para ordenar os resultados retornados pela consulta SQL acima, a cláusula ORDER BY deve ser colocada
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Alternativa Correta: C - depois da linha 7.
Vamos entender o contexto da questão antes de detalhar o porquê da alternativa C ser a correta. A consulta SQL apresentada realiza uma operação de UNION ALL entre duas subconsultas. A primeira subconsulta (linhas 1 a 3) seleciona os campos cidade, estado e conta o número de registros na tabela clientes agrupados por cidade e estado. A segunda subconsulta (linhas 5 a 7) faz exatamente a mesma operação, mas com a tabela empregados. O UNION ALL combina os resultados dessas duas subconsultas em um único conjunto de resultados.
Para aplicar uma ordenação nesse conjunto combinado, utilizamos a cláusula ORDER BY. No entanto, é importante entender que a ordenação deve ser aplicada após a combinação dos resultados, caso contrário, estaríamos ordenando apenas a primeira subconsulta ou a segunda, o que não faz sentido quando queremos ordenar o resultado final unificado.
A alternativa C é a correta porque a cláusula ORDER BY deve ser adicionada após a conclusão das operações de UNION ALL, ou seja, após a linha 7. Isso garante que o resultado final, que é a união das duas subconsultas, seja ordenado como um todo. Assim, a ordenação será aplicada corretamente sobre toda a união dos resultados, não apenas sobre uma parte deles.
As outras alternativas são incorretas porque:
- A alternativa A sugere colocar ORDER BY entre as linhas das subconsultas, o que ordenaria os resultados individualmente antes do UNION ALL.
- A alternativa B sugere duas colocações para ORDER BY, o que também não faz sentido, pois precisamos de apenas uma cláusula ORDER BY após a união dos resultados.
- A alternativa D sugere colocar a cláusula após o UNION ALL diretamente, o que não é possível, pois o UNION ALL precisa estar entre duas consultas ou subconsultas.
- A alternativa E está incorreta porque é, sim, possível usar um ORDER BY em conjunto com UNION ALL, mas deve ser colocado no final de todas as consultas unidas.
Em resumo, a cláusula ORDER BY deve ser utilizada para ordenar os resultados de uma consulta SQL e, quando usada em conjunto com o UNION ALL, deve ser colocada após todas as subconsultas envolvidas na união terem sido declaradas.
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
c-
order by vai no final. é necessario ter o retorno do select para o order by saber o q ordenar. o group by é q pode ser usado antes do final
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo