Postgres: выбор столбцов на основе значений строк - PullRequest
0 голосов
/ 21 ноября 2018

У меня есть 2 таблицы:

Таблица A

 Section | measure_name   |
---------+----------------|
 A       |      col1      |
 B       |      col2      |
 C       |      col3      |

Таблица B

 Facility | col1| col2| col3| 
----------+-----+-----+-----+
 NY       |  5  | 50  |  90 |

Я хочунаписать запрос, который выбирает measure_name из Table A из Table B.

1 Ответ

0 голосов
/ 22 ноября 2018

Кажется, вы хотите получить значения из таблицы B для столбцов, соответствующих каждому measure_name

Если да, вы используете UNNEST(), чтобы преобразовать таблицу B в строки и затем объединить ее сТаблица A.

with c AS
( SELECT 
       unnest(array['col1', 'col2', 'col3']) AS colname,
       unnest(array[col1, col2, col3]) AS value
FROM B
) 
SELECT a.*,c.value FROM A 
JOIN C ON a.measure_name = c.colname;

Это дает вам

Section measure_name value
A       col1          5
B       col2         50
C       col3         90

Демо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...