Я знаю, что мне нужно использовать подзапросы для этого, но я не уверен, как это сделать. У меня есть несколько записей для идентификатора столбца, но я хочу показать их как одну строку. Вот конструкция стола:Postgres Несколько строк как одиночная строка
UUID | position_id | spot
-----+-------------+-----
111 | 1 | left
112 | 1 | right
113 | 3 | center
114 | 4 | right
Я так хочу, чтобы вывести эти данные, например:
postion_1_left | position_1_right | postion_3_center | position_4_right
---------------+------------------+------------------+-----------------
true | true | true | true
Причина этого заключается в том, что я хочу, чтобы поместить эти данные в отчет BIRT, и с абсолютным значения для каждого position_id и точки как истинные или ложные сделают отчет намного приятнее. В докладе будет выглядеть так:
left | center | right
-----------+-------+--------+-----------
position 1 | yes | no | yes
position 2 | no | no | no
position 3 | no | yes | no
position 4 | no | no | yes
Я не могу придумать лучшего способа сделать это, так что если кто-нибудь есть предложение, я открыт для этого. В противном случае я продолжу этот макет, но мне сложно найти запрос. Я попытался начать с такого запроса:
SELECT (SELECT spot FROM positions_table WHERE position_id = 3 AND spot = 'left')
from positions_table
WHERE uuid = 'afb36733'
Но, очевидно, это не сработало.
Попытайтесь начать с 'select pos.id, bool_or (spot = 'left'), как осталось от generate_series (1,4), так как pos (id) left присоединяется к вашей_группе по (pos.id = position_id) группой pos. id' – Abelisto