Questão de Banco de Dados — SQL — FGV 2023
- Código
- fg063584
- Banca
- FGV
- Órgão
- DPE-RS
- Ano
- 2023
- Nível
- Superior
- Cargo
- Analista - Área de Apoio Especializado - Tecnologia da Informação - Banco de Dados
- A2;
- B3;
- C4;
- D6;
- E7;
GabaritoA — 2;
Gabarito: letra A. A consulta retorna 2 linhas, pois apenas os grupos (VEND001, SP) e (VEND002, RJ) satisfazem simultaneamente o filtro temporal (BETWEEN '2023-01-01' AND '2023-01-04') e a condição do HAVING (soma do valor da venda superior à média do vendedor).
A tabela vendas contém 7 registros. O filtro WHERE dat_venda BETWEEN '2023-01-01' AND '2023-01-04' seleciona as linhas com datas 01/01, 02/01, 01/01 e 04/01 – um total de 4 linhas (ids 1, 2, 3 e 7).
A subconsulta V2 calcula a média do valor de venda (qtde * valor_unitario) por vendedor, considerando todas as linhas da tabela:
Vendedor | Soma total | Qtde total | Média |
|---|---|---|---|
VEND001 | 140 | 3 | 46,67 |
VEND002 | 150 | 2 | 75,00 |
VEND003 | 70 | 2 | 35,00 |
As 4 linhas filtradas são agrupadas por vendedor e uf:
Grupo (vendedor, uf) | Linhas | Soma (qtde*valor) | Média do vendedor | Soma > Média? |
|---|---|---|---|---|
VEND001, SP | id1,id2 | 100 | 46,67 | ✅ Sim |
VEND002, RJ | id3 | 100 | 75,00 | ✅ Sim |
VEND003, SC | id7 | 30 | 35,00 | ❌ Não |
Cláusula HAVING elimina o grupo VEND003, SC, restando 2 grupos. A ORDER BY não altera a contagem.
A) 2 – ✅ Correta: conforme demonstrado.
B) 3 – ❌ Incorreta: corresponderia a incluir erroneamente VEND003, SC, mas este é eliminado pelo HAVING.
C) 4 – ❌ Incorreta: número de linhas após o WHERE, sem aplicar o HAVING.
D) 6 – ❌ Incorreta: número total de linhas da tabela (7) subtraindo ou contagem errada.
E) 7 – ❌ Incorreta: total de linhas da tabela sem nenhum filtro.
Gabarito: letra A.
Link permanente: /questoes/fg063584