Questão 28 · Informática: Banco de dados
Nos comandos SQL que empregam funções de agregação em conjunto com a cláusula group by, é possível filtrar linhas do resultado depois da aplicação das funções de agregação por meio da cláusula:
- A) Case;
- B) Distinctrow;
- C) Full outer join;
- D) Having;
- E) Where.
Marque a alternativa correta:
Gabarito: D
Gabarito definitivo divulgado pela banca FGV (PGE/RO 2015).
Comentário
Gabarito: D.
A cláusula WHERE filtra as linhas antes do agrupamento e das funções de agregação. Já a cláusula HAVING filtra os grupos depois que as funções de agregação são calculadas. Por isso, para filtrar após a agregação, a resposta é HAVING. Por exemplo, HAVING COUNT(*) > 5 mantém apenas os grupos com mais de cinco registros. Logo, a alternativa D é a correta.
As demais alternativas estão erradas:
- (A) CASE: é uma expressão condicional usada para calcular valores, e não uma cláusula de filtro de grupos.
- (B) DISTINCTROW: é uma palavra de consulta do MySQL que elimina linhas duplicadas, e não filtra grupos após a agregação.
- (C) FULL OUTER JOIN: é um tipo de junção entre tabelas, sem relação com filtro de grupos.
- (E) WHERE: filtra linhas antes do agrupamento, e não depois das funções de agregação.
Dica de prova: WHERE filtra linhas; HAVING filtra grupos. Se a questão falar em filtrar depois de agregar, a resposta é HAVING.
Fundamentos: Cláusula HAVING para filtrar grupos · Diferença entre WHERE e HAVING · Funções de agregação com GROUP BY
Comentário gerado pela Cravei IA a partir do enunciado e do gabarito definitivo divulgado pela banca, e conferido por uma verificação automática. A IA pode errar: o gabarito oficial sempre prevalece.
Fonte: prova FGV PGE/RO 2015 (Analista de Sistemas (Negócios, Suporte e Microinformática)), questão 28, com o gabarito definitivo da banca. Comentário: Equipe Cravei · como fazemos e revisamos.