Questão 3 - HCPA 2020 - ANALISTA DE TI (DESENVOLVIMENTO)

questão 3 consulta sql

Confira abaixo a resposta da questão sobre consulta SQL com o uso de JOIN, COUNT, WHERE, GROUP BY, HAVING nas alternativas.

Considere as tabelas aip_pacientes e agh_atendimentos abaixo: 

[COLOCAR IMAGEM]

No SGBD Oracle, a consulta que retorna o nome do aip_pacientes e a quantidade de agh_atendimentos para pacientes que tiveram mais de 10 agh_atendimentos no hospital é: 

(A) SELECT nome, COUNT(*) AS QUANTIDADE FROM aip_pacientes, agh_atendimentos WHERE codigo = pac_codigo AND COUNT(*) > 10 

(B) SELECT nome FROM aip_pacientes, agh_atendimentos WHERE codigo = pac_codigo AND COUNT(*) > 10 GROUP BY codigo 

(C) SELECT nome, count(*) AS QUANTIDADE FROM aip_pacientes, agh_atendimentos WHERE codigo = pac_codigo GROUP BY nome HAVING COUNT(*) >10 

(D) SELECT nome, COUNT(*) AS QUANTIDADE FROM aip_pacientes, agh_atendimentos WHERE codigo = pac_codigo AND QUANTIDADE > 10 GROUP BY codigo 

(E) SELECT nome, COUNT(*) AS QUANTIDADE FROM aip_pacientes, agh_atendimentos WHERE codigo = pac_codigo GROUP BY codigo HAVING QUANTIDADE >10

Vamos analisar cada opção:

(A) SELECT nome, COUNT() AS QUANTIDADE FROM aip_pacientes, agh_atendimentos WHERE codigo = pac_codigo AND COUNT() > 10: Esta consulta tem um problema na cláusula WHERE. Não é possível usar COUNT(*) diretamente na cláusula WHERE. Além disso, falta a cláusula GROUP BY para agrupar por nome e contar a quantidade de atendimentos.

(B) SELECT nome FROM aip_pacientes, agh_atendimentos WHERE codigo = pac_codigo AND COUNT(*) > 10 GROUP BY codigo: Nesta consulta, falta a função de agregação COUNT(*) na seleção dos campos, e a cláusula GROUP BY não está corretamente configurada para calcular a contagem de atendimentos.

(C) SELECT nome, count() AS QUANTIDADE FROM aip_pacientes, agh_atendimentos WHERE codigo = pac_codigo GROUP BY nome HAVING COUNT() >10: Esta consulta está correta. Ela seleciona o nome dos pacientes, realiza um join entre as tabelas aip_pacientes e agh_atendimentos, agrupa os resultados pelo nome do paciente, conta a quantidade de atendimentos para cada paciente e aplica a condição HAVING para filtrar apenas aqueles com mais de 10 atendimentos.

(D) SELECT nome, COUNT(*) AS QUANTIDADE FROM aip_pacientes, agh_atendimentos WHERE codigo = pac_codigo AND QUANTIDADE > 10 GROUP BY codigo: Esta consulta tenta usar a variável QUANTIDADE na cláusula WHERE, o que não é possível. Além disso, falta a cláusula HAVING para aplicar a condição de contagem.

(E) SELECT nome, COUNT(*) AS QUANTIDADE FROM aip_pacientes, agh_atendimentos WHERE codigo = pac_codigo GROUP BY codigo HAVING QUANTIDADE >10: Aqui, também há tentativa de usar a variável QUANTIDADE na cláusula HAVING sem ser definida na consulta. Além disso, a contagem deveria ser feita pelo nome do paciente, não pelo código.

Portanto, a única opção correta é a (C). 

O assunto principal abordado na questão é o uso de JOIN, GROUP BY, COUNT, WHERE e HAVING em consultas SQL para filtrar e agrupar dados de múltiplas tabelas. Para dominar esse assunto, é fundamental compreender como usar corretamente essas cláusulas para obter os resultados desejados.

Quer acompanhar as novidade do site?

Leia mais em: onteudo.portalfaurgs.com.br/a...

Questão 3 - HCPA 2020 - ANALISTA DE TI (DESENVOLVIMENTO)

Última atualização: 2024-02-16

Quer acompanhar as novidade do site?
Veja também:

Resumão dos principais assuntos para a prova do CRF-RS 2024 de acordo com o edital e provas relacionadas.

Principais assuntos prova CRF RS 2024

O que é básico no javascript?

javascript para iniciantes e concurseiros

Como buscar entrada e saída de produto por um período com sql?

Entrada e saída de produtos por período SQL

Como remover caracteres especiais no mysql?

remover caracteres especiais mysql

Questão 12 - HCPA 2011 - ANALISTA DE SISTEMAS I (ADMINISTRADOR DE BANCO DE DADOS E SEGURANÇA DA INFORMAÇÃO)

questão 12 PLSQL package

Quais os termos em inglês mais usados em banco de dados?

Inglês técnico banco de dados

Web Stories