Pular para o conteúdo principal

Questão de Banco de Dados — PostgreSQL — PROGEP FURG 2017

Banco de DadosPostgreSQL
Código
qg947291
Banca
PROGEP FURG
Órgão
FURG
Ano
2017
Cargo
PROGEP - - Tec ( )
A sequência de queries SQL abaixo cria a estrutura base de um banco de dados PostgreSQL que será utilizada na questão.   CREATE SCHEMA clube; CREATE TABLE clube.socio ( id SERIAL, primeiro_nome VARCHAR(40) NOT NULL, sobrenome VARCHAR(200) NOT NULL, endereco VARCHAR(200) NOT NULL, telefone VARCHAR(20) NOT NULL, recomendado_por INTEGER, data_cadastro TIMESTAMP WITHOUT TIME ZONE NOT NULL, CONSTRAINT socio_data_cadastro_key UNIQUE(data_cadastro), CONSTRAINT socio_pkey PRIMARY KEY(id) ) WITH (oids = false); CREATE TABLE clube.instalacao ( id SERIAL, nome VARCHAR(200) NOT NULL, custo_por_socio NUMERIC(10,2), custo_por_convidado NUMERIC(10,2), custo_inicial NUMERIC(10,2), CONSTRAINT instalacao_pkey PRIMARY KEY(id) ) WITH (oids = false); CREATE TABLE clube.agendamento ( id SERIAL, id_socio INTEGER NOT NULL, id_instalacao INTEGER NOT NULL, inicio TIMESTAMP WITHOUT TIME ZONE NOT NULL, fim TIMESTAMP WITHOUT TIME ZONE, CONSTRAINT agendamento_pkey PRIMARY KEY(id), CONSTRAINT agendamento_fk FOREIGN KEY (id_socio) REFERENCES clube.socio(id) ON DELETE RESTRICT ON UPDATE CASCADE NOT DEFERRABLE, CONSTRAINT agendamento_fk1 FOREIGN KEY (id_instalacao) REFERENCES clube.instalacao(id) ON DELETE RESTRICT ON UPDATE CASCADE NOT DEFERRABLE ) WITH (oids = false);   Considerando a SQL abaixo, qual o objetivo da tabela virtual chamada auxiliar?   SELECT socio.primeiro_nome || ' ' || socio.sobrenome, socio2.primeiro_nome || ' ' || socio2.sobrenome, socio.data_cadastro FROM clube.socio INNER JOIN ( SELECT socio.recomendado_por, MAX(socio.data_cadastro) data_cadastro FROM clube.socio WHERE socio.recomendado_por IS NOT NULL GROUP BY socio.recomendado_por ORDER BY 1 ) auxiliar ON auxiliar.data_cadastro = socio.data_cadastro INNER JOIN clube.socio socio2 ON socio2.id = socio.recomendado_por
  1. AListar cada sócio, quem recomendou e a data de cadastro.
  2. BAgrupar por data de cadastro os sócios, devolvendo quem recomendou e a respectiva data.
  3. CObter a informação referente a quem recomendou e qual a data de cadastro dos sócios.
  4. DA query possui erros de sintaxe na linha do ORDER BY e na ausência da palavra chave AS.
  5. EBuscar quem recomendou um sócio e qual a última data de cadastro de seus recomendados.
Revelar gabarito e comentário

GabaritoE — Buscar quem recomendou um sócio e qual a última data de cadastro de seus recomendados.

Link permanente: /questoes/qg947291