Caros concurseiros(as)

A questão 23  do concurso da Petrobras para o cargo de TÉCNICO(A) DE INFORMÁTICA JÚNIOR, merece nossa análise pelas controvérsia nas interpretações possíveis bem como na resposta apresentada no gabarito.

CONCURSO:

PETRÓLEO BRASILEIRO S.A. – PETROBRAS PROCESSO SELETIVO PÚBLICO PARA PREENCHIMENTO DE VAGAS E FORMAÇÃO DE CADASTRO EM CARGOS DE NÍVEL SUPERIOR E DE NÍVEL MÉDIO EDITAL No 1 – PETROBRAS/PSP RH 2014.2, DE 11 DE SETEMBRO DE 2014 – PROVA REALIZADA EM 07/12/2014

 

QUESTÃO:

Considere os comandos SQL a seguir, usados para criar 3 tabelas em um SGBD relacional, para responder às questões de nos 23 e 24.

CREATE TABLE Inquilino(

nome       VARCHAR(20) NULL,

cpf            CHAR(11) NOT NULL,

PRIMARY KEY (cpf));

 

CREATE TABLE Vaga(

andar                       INTEGER NOT NULL,

numero                 INTEGER NOT NULL,

PRIMARY KEY (andar,numero));

 

CREATE TABLE Vaga_Inquilino(

andar                       INTEGER NOT NULL,

numero                  INTEGER NOT NULL,

cpf                            CHAR(11) NOT NULL,

PRIMARY KEY (andar,numero,cpf));

 

 

23 Nessa situação, para se obter um relatório com a quantidade de vagas por cada inquilino, listadas e agrupadas por cpf, deve ser feita a seguinte consulta:

(A) select cpf,andar,numero from Vaga_Inquilino;

(B) select cpf,count(*) from Vaga_Inquilino group by cpf;

(C) select cpf,sum(cpf) from Vaga_Inquilino group by cpf;

(D) select distinct cpf from Vaga_Inquilino ;

(E) select distinct count(Inquilino.cpf) from Inquilino , Vaga_Inquilino Where Inquilino.cpf = Vaga_Inquilino.cpf order by Inquilino.cpf;

 

Considerando a tabela “Vaga_Inquilino”:

  • Em cada registro é apresentado os campos andar, numero e o cpf:
    • Andar – Podemos inferir como o andar do prédio no qual o inquilino tem N vagas;
    • Numero – Podemos inferir como sendo a quantidade de vagas que o inquilino tem no andar em questão;
    • Cpf – Podemos inferir como sendo o identificador do inquilino a qual pertencem tais vagas.
  • Cada inquilino pode ter mais de uma vaga por registro. “numero” é um campo INTEGER;
  • Um inquilino pode ter mais de um registro no mesmo “andar”, desde que “numero” seja diferente dos demais registros para o mesmo “andar” e para o mesmo “cpf”.

 

O PONTO DA QUESTÃO

– …quantidade de vagas por cada inquilino… – Consiste em obtermos o total de vagas que cada inquilino tem. Isto pode ser obtido pela tabela Vaga_Inquilino.

 

Levando em conta as considerações para a tabela Vaga_Inquilino e o pedido na questão a instrução SQL a atender o solicitado em …quantidade de vagas por cada inquilino… Seria:

 

select cpf, sum(numero)

from Vaga_Inquilino

group by cpf

 

CONSIDERANDO AS ALTERNATIVAS

 

Alternativa A – NÃO ATENDE

Relaciona todos os registros e todas as colunas da tabela Vaga_Inquilino.

 

Alternativa B – NÃO ATENDE

Conta a quantidade de registros na tabela Vaga_Inquilino, agrupando por cpf, ou seja, totaliza por cpf quantos, registros tem na referida tabela e não a quantidade de vagas, como solicitado no enunciado.

 

Alternativa C – NÃO ATENDE

Está errada a sintaxe. A função soma só pode ser aplicada para campos de tipo numérico. “cpf” foi definido do tipo CHAR.

 

Alternativa D – NÃO ATENDE

Esta sentença SQL está listando uma ocorrência de cada “cpf” registrado na tabela Vaga_Inquilino.

 

Alternativa E – NÃO ATENDE

Esta sentença SQL apresentará o total de inquilinos que estão na tabela Inquilino, que tenham seu “cpf” na tabela Vaga_Inquilino.

CONCLUSÃO

Esta questão não tem uma alternativa válida.

 

 

Até o próximo.

Comente

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *