crosstab
—————————————-
SELECT *
FROM crosstab( 'select opros.id,
(select username from uzbattablet.uzbat_auth_agent where id=opros.agent_id) as agent,
(select name from uzbattablet.uzbat_interview_interview where id=opros.interview_id) as interview,
(select name from uzbattablet.uzbat_interview_retailpoint where id=opros.retail_point_id)retail_point,
opros.is_finished,
opros.started_at,
opros.finished_at,
quest.text_ru,
coise.text_ru
from uzbattablet.uzbat_interview_answer as opros,
uzbattablet.uzbat_interview_answer_choices as op_ques,
uzbattablet.uzbat_interview_choice as coise,
uzbattablet.uzbat_interview_question quest
where opros.id=op_ques.answer_id
and op_ques.choice_id=coise.id
and quest.id=coise.question_id
order by 1,quest.text_ru',
'select distinct quest.text_ru
from uzbattablet.uzbat_interview_answer as opros,
uzbattablet.uzbat_interview_answer_choices as op_ques,
uzbattablet.uzbat_interview_choice as coise,
uzbattablet.uzbat_interview_question quest
where opros.id=op_ques.answer_id
and op_ques.choice_id=coise.id
and quest.id=coise.question_id
order by 1,quest.text_ru')
AS final_result("id" int, "agent" text,"interview" text, "retail_point" text, "is_finished" boolean, "started_at" timestamp without time zone, "finished_at" timestamp without time zone, "KENT - 1" text,"KENT - 2" text,"KENT - 3" text,"PALL MALL - 1" text,"PALL MALL - 2" text,"PALL MALL - 3" text,"PALL MALL - 4" text,"Вам уже исполнилось 20 лет?" text,"У Вас есть несколько минут?" text,"Какие сигареты Вы курили до этого?" text,"Какие сигареты вы курите ?" text,"Пол" text,,,,,,,,,,,,,,здесь может быть множество полей которые формируются в text_ru);
——————————👆
Как динамически формировать эти поля? Есть кто подскажет?
Через динамический sql Рассмотрите вариант json_object_agg, если приложение умеет работать с json
Обсуждают сегодня