Questão de Banco de Dados — SQL — FGV 2024
- Código
- fg103675
- Banca
- FGV
- Órgão
- TCE-PA
- Ano
- 2024
- Nível
- Superior
- ACOUNT
- BGROUP BY
- CJOIN
- DOVER
- EWHERE
GabaritoB — GROUP BY
Gabarito: letra B (GROUP BY). A contagem de registros por comarca e tipificação exige agrupar os dados por essas colunas, o que é feito pela cláusula GROUP BY. A função COUNT é utilizada em conjunto, mas a cláusula que viabiliza o agrupamento é o GROUP BY.
A banca testa o conhecimento da diferença entre funções de agregação e cláusulas SQL. O enunciado pede a cláusula que viabiliza a contagem por grupo – o GROUP BY é quem cria os grupos; sem ele, o COUNT conta toda a tabela.
COUNT é uma função de agregação, não uma cláusula. Sozinha não agrupa registros; precisa do GROUP BY para contar por categoria. A confusão comum é achar que COUNT já faz a contagem agrupada, mas ela só conta linhas – quem define os grupos é o GROUP BY.
GROUP BY agrupa linhas com valores iguais nas colunas especificadas (comarca e tipificação), permitindo aplicar funções de agregação como COUNT, SUM ou AVG a cada grupo. Sem essa cláusula, não é possível obter contagens separadas por critérios.
JOIN combina dados de duas ou mais tabelas por uma condição de relacionamento. Não tem relação com agrupamento ou contagem; serve para unir informações, não para resumi-las.
OVER é usada em funções janela (window functions) para definir partições e ordenação dentro de um conjunto de resultados. Embora possa trabalhar com agregações, não é a cláusula padrão para contagem por grupo – GROUP BY é a abordagem direta e mais comum.
WHERE filtra linhas antes do agrupamento, mas não agrupa. É uma cláusula de restrição, não de agrupamento. Com WHERE você seleciona quais registros entrarão na contagem, mas o agrupamento em si depende do GROUP BY (ou de uma função janela, mas não é o caso).
A armadilha está em confundir função (COUNT) com cláusula (GROUP BY). A banca pergunta qual cláusula viabiliza a contagem – e não qual função faz a contagem. O candidato que responde COUNT cai no erro de trocar o papel dos elementos da consulta. Lembre-se: na vida real, SELECT COUNT(*) FROM ... GROUP BY ... – o GROUP BY é a peça que organiza os grupos.
Gabarito: letra B (GROUP BY).
Link permanente: /questoes/fg103675