Imagem de fundo

Analise a definição da tabela “cidade_usuario”, bem como os...

Analise a definição da tabela “cidade_usuario”, bem como os registros que foram inseridos. Responda as questões 18 e 19, considerando o script 2.



create table cidade_usuario

(

cidade character varying(50),

usuario_id integer,

primary key(cidade, usuario_id)

);

insert into cidade_usuario

values

('CAXIAS DO SUL', 124250),

('PORTO ALEGRE', 124277),

('BENTO GONÇALVES', 124333),

('RIO GRANDE', 124305),

('RIO GRANDE', 124247),

('PORTO ALEGRE', 124326),

('PORTO ALEGRE', 124306);


Script 2



Qual consulta SQL seria necessária executar no banco de dados PostgreSQL, versão 9.2, utilizando funções nativas, para que o resultado produzido seja EXATAMENTE igual aos valores obtidos na figura 4?


.

cidade character varying (50)

usuarios text

1

BENTO GONÇALVES

124333

2

CAXIAS DO SUL

124250

3

PORTO ALEGRE

124326 | 124306 | 124277

4

RIO GRANDE

124305 | 124247

Figura 4 - Resultado esperado.


A

with q1 as (select * from cidade_usuario order by usuario_id desc)

select q1.cidade, string_concat(q1.usuario_id, ' | ') as usuarios

from q1 group by q1.cidade order by 2


B

with q1 as (select * from cidade_usuario order by usuario_id desc)

select q1.cidade, concat_values(q1.usuario_id, ' | ') as usuarios

from q1 group by q1.cidade order by 1


C

with q1 as (select * from cidade_usuario order by usuario_id desc)

select q1.cidade, string_concat(array_agg(q1.usuario_id), ' | ') as usuarios

from q1 group by q1.cidade order by 1


D

with q1 as (select * from cidade_usuario order by usuario_id)

select q1.cidade, array_to_string(array_agg(q1.usuario_id), ' | ') as usuarios

from q1 group by q1.cidade order by 2


E

with q1 as (select * from cidade_usuario order by usuario_id desc)

select q1.cidade, array_to_string(array_agg(q1.usuario_id), ' | ') as usuarios

from q1 group by q1.cidade order by 1