Questão FC670721
O Hospital Campo Grande está implementando um novo sistema de banco de dados para gerenciar informações sobre médicos, pacientes e atendimentos. O banco de dados apresenta as tabel
Linguagem SQL
QUADRIX · 2025
O Hospital Campo Grande está implementando um novo sistema de banco de dados para gerenciar informações sobre médicos, pacientes e atendimentos. O banco de dados apresenta as tabelas a seguir.
CREATE TABLE Medicos ( id_medico INT PRIMARY KEY, nome VARCHAR(100), especialidade VARCHAR(50), salario DECIMAL(10,2) ); CREATE TABLE Pacientes ( id_paciente INT PRIMARY KEY, nome VARCHAR(100), data_nascimento DATE ); CREATE TABLE Atendimentos ( id_atendimento INT PRIMARY KEY, id_medico INT, id_paciente INT, data_atendimento DATE, descricao VARCHAR(100), FOREIGN KEY (id_medico) REFERENCES Medicos(id_medico), FOREIGN KEY (id_paciente) REFERENCES Pacientes(id_paciente) );
Com relação à situação hipotética apresentada e aos comandos SQL, julgue o item seguinte.
O seguinte comando retorna o nome dos médicos e a quantidade de atendimentos que cada um realizou, ordenando pela maior quantidade de atendimentos:
SELECT M.nome, COUNT(A.id_atendimento) AS total_atendimentos FROM Medicos M LEFT JOIN Atendimentos A ON M.id_medico = A.id_medico GROUP BY M.nome ORDER BY COUNT(A.id_atendimento) DESC;;
Mostrar resposta e comentário
Gabarito
Certo
Comentário do professor
O item é CERTO porque a consulta computa corretamente, para cada médico, a quantidade de atendimentos e ordena do maior para o menor.
O LEFT JOIN entre Medicos e Atendimentos garante que todos os médicos apareçam, mesmo sem registros de atendimento. A função agregadora \(COUNT(A.id\_atendimento)\) conta apenas valores não nulos, retornando 0 para médicos sem atendimentos.
O GROUP BY em M.nome agrupa os registros por médico para que a contagem seja feita por grupo. Por fim, o ORDER BY com \(COUNT(A.id\_atendimento) DESC\) ordena do maior para o menor número de atendimentos.
Observação: agrupar por nome funciona, mas se houver médicos com nomes idênticos, suas contagens serão somadas. Para evitar isso, agrupe por M.id\_medico (e mantenha M.nome na lista SELECT).
Conteúdo do catálogo FC Concursos · Atualizado em