FC ConcursosFC Concursos

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

Continue aprendendo