FC ConcursosFC Concursos

Questão FC670750

O Conselho Regional de Medicina Veterinária do Estado de Goiás (CRMV‑GO) mantinha um banco de dados relacional denominado CRMV_GO, que registrava veterinários, especialidades, clín

Linguagem SQL

QUADRIX · 2025

O Conselho Regional de Medicina Veterinária do Estado de Goiás (CRMV‑GO) mantinha um banco de dados relacional denominado CRMV_GO, que registrava veterinários, especialidades, clínicas e atendimentos. As principais tabelas estão dispostas a seguir.

VETERINARIO (id_vet, nome, crmv, data_inscricao, id_especialidade, ativo) ESPECIALIDADE (id_especialidade, descricao) CLINICA (id_clinica, nome_clinica, cidade) ATENDIMENTO (id_atendimento, id_vet, id_clinica, data_atendimento, status)

Com base nessa situação hipotética e no uso do comando SELECT no banco de dados CRMV_GO, julgue o item seguinte.

 

O comando a seguir apresenta corretamente os veterinários que possuem mais atendimentos em clínicas de Brasília do que em Goiânia. SELECT v.nome FROM VETERINARIO v INNER JOIN ATENDIMENTO a ON v.id_vet = a.id_vet INNER JOIN CLINICA c ON a.id_clinica = c.id_clinica WHERE c.cidade = 'Brasília' GROUP BY v.id_vet HAVING COUNT(a.id_atendimento) > (       SELECT COUNT(a2.id_atendimento)       FROM ATENDIMENTO a2       INNER JOIN CLINICA c2 ON a2.id_clinica = c2.id_clinica       WHERE c2.cidade = 'Goiânia' );

Mostrar resposta e comentário

Gabarito

Errado

Comentário do professor

A afirmação foi julgada ERRADO porque a subconsulta não está correlacionada ao veterinário externo. Assim, ela calcula a quantidade total de atendimentos em Goiânia por todos os veterinários, e não os atendimentos de cada veterinário comparados individualmente.

Na prática isso faz a comparação entre \( \text{COUNT}(a.id\_atendimento) \) de um único veterinário em Brasília e a soma de atendimentos de toda a categoria em Goiânia, o que é logicamente incorreto e quase sempre falso.

O conserto é adicionar a correlação a2.id_vet = v.id_vet na subconsulta, e obedecer a sintaxe padrão agrupando campos selecionados. Por exemplo: \( \text{HAVING COUNT}(a.id\_atendimento) > (\text{SELECT COUNT}(a2.id\_atendimento) \ldots WHERE c2.cidade='Goiânia' AND a2.id\_vet = v.id\_vet) \) e usar \(GROUP BY\ v.id\_vet,\ v.nome\).

Conteúdo do catálogo FC Concursos · Atualizado em

Continue aprendendo