Pular para o conteúdo principal

Questão de Banco de Dados — SQL — FCC 2019

Banco de DadosSQL
Código
fc057803
Banca
FCC
Órgão
TRF - 3ª REGIÃO
Ano
2019
Cargo
Técnico Judiciário - Informática
Em uma instrução SQL, a cláusula GROUP BY, se utilizada juntamente com funções de grupo, deve estar em uma posição específica como
  1. ASELECT coluna1 [, coluna2, ... ] . função_de_grupo, [ função_de_grupo, ...]FROM tabelaORDER BY coluna2GROUP BY coluna4 [, coluna5, ...]HAVING coluna5 > 10WHERE condição;
  2. BSELECT coluna1 [, coluna2, ... ] . função_de_grupo, [ função_de_grupo, ...]FROM tabelaWHERE condiçãoORDER BY coluna2GROUP BY coluna4 [, coluna5, ...]HAVING coluna5 > 10;
  3. CSELECT coluna1 [, coluna2, ... ] . função_de_grupo, [ função_de_grupo, ...]FROM tabelaWHERE condiçãoGROUP BY coluna4 [, coluna5, ...]HAVING coluna5 > 10ORDER BY coluna2;
  4. DSELECT coluna1 [, coluna2, ... ] . função_de_grupo, [ função_de_grupo, ...]FROM tabelaHAVING coluna5 > 10ORDER B Y coluna2WHERE condiçãoGROUP BY coluna4 [, coluna5, ...] ;
  5. ESELECT coluna1 [, coluna2, ... ] . função_de_grupo, [ função_de_grupo, ...]FROM tabelaHAVING coluna5 > 10WHERE condiçãoORDER BY coluna2GROUP BY coluna4 [, coluna5, ...];
Revelar gabarito e comentário

GabaritoC — SELECT coluna1 [, coluna2, ... ] . função_de_grupo, [ função_de_grupo, ...] FROM tabela WHERE condição GROUP BY coluna4 [, coluna5, ...] HAVING coluna5 > 10 ORDER BY coluna2;

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

SQL: Ordem das cláusulas em consultas com GROUP BY

Gabarito: letra C. A ordem correta das cláusulas em uma instrução SQL que utiliza funções de grupo e GROUP BY é: SELECT, FROM, WHERE, GROUP BY, HAVING, ORDER BY. A alternativa C é a única que apresenta essa sequência, com GROUP BY após WHERE e antes de HAVING, e ORDER BY por último. As demais alternativas violam essa ordem, colocando ORDER BY antes de GROUP BY ou invertendo outras cláusulas.

A sintaxe padrão SQL determina que o processamento lógico da consulta segue essa ordem. As funções de grupo (como COUNT, SUM, AVG, MIN, MAX) só podem ser usadas nas cláusulas SELECT, HAVING ou ORDER BY, e a cláusula GROUP BY agrupa as linhas antes da aplicação dessas funções. O HAVING filtra grupos após o GROUP BY, e o ORDER BY ordena o resultado final.

  1. 1SELECT
  2. 2FROM
  3. 3WHERE
  4. 4GROUP BY
  5. 5HAVING
  6. 6ORDER BY
LEVEL · soulevel.com.br

Alternativa A — ❌ Incorreta

A cláusula ORDER BY aparece antes de GROUP BY. A ordem deve ser WHERE → GROUP BY → HAVING → ORDER BY, nunca o contrário. O ORDER BY é a última cláusula a ser processada.

Alternativa B — ❌ Incorreta

Novamente, ORDER BY está posicionado antes de GROUP BY. Além disso, a cláusula HAVING deveria vir logo após GROUP BY, mas aqui GROUP BY vem depois de WHERE e ORDER BY, e HAVING depois de ORDER BY? A sequência é: FROM, WHERE, ORDER BY, GROUP BY, HAVING. Incorreta.

Alternativa C — ✅ Correta ⟵ GABARITO

A ordem é: SELECT, FROM, WHERE, GROUP BY, HAVING, ORDER BY. Essa é a sequência correta e obrigatória para consultas que utilizam GROUP BY e funções de grupo.

Alternativa D — ❌ Incorreta

A cláusula HAVING aparece antes de ORDER BY e WHERE, e WHERE depois de ORDER BY. Também GROUP BY está no final, após WHERE. Tudo fora de ordem.

Alternativa E — ❌ Incorreta

HAVING aparece antes de WHERE e ORDER BY, e GROUP BY no final. A ordem correta é: WHERE → GROUP BY → HAVING → ORDER BY.

Gabarito: letra C — a única que respeita a ordem sintática correta das cláusulas SQL.

Link permanente: /questoes/fc057803