Использование кросс-таблицы и добавление нового значения в столбец в postgresql

У меня есть функция (sae_rel_data()), которая возвращает результат, подобный показанному на рисунке. Я пытаюсь вернуть результат в виде таблицы event_crf_id, описание, значение, CBID. Поэтому мне нужно будет определить значение CBID и назначить это значение всем другим строкам, имеющим тот же evet_crf_id в другом столбце с именем CBID.

Например, CBID= 60051 имеет event_crf_id=444

event_crf_id; description;        value;            CBID
   444;          "CBID";          "60051";         "60051"
   444;         "Month";           "09";           "60051"
   444;         "Day";             "27";           "60051"
   444;         "Year";            "2016";         "60051"
...

Как это можно сделать? Я использую postgresql

1 ответ

Я смог получить желаемый результат, используя разбивку своего кода и сохраняя его части в функции, а затем применяя внутреннее соединение

   SELECT cbid, description, value FROM (
    SELECT test.event_crf_id, description, test.value, id_table.cbi FROM sae_rel_data() test
   INNER JOIN (SELECT event_crf_id, value as cbid FROM sae_rel_data() where description='CBID') id_table
    ON id_table.event_crf_id=test.event_crf_id )relevant
Другие вопросы по тегам