Помогите транспонировать таблицу Postgres
Дана таблица
| id | field | value |
|---|---|---|
| 2 | city | Moscov |
| 2 | name | Oleg |
| 2 | adress | Krasnay 32 |
Нужно привести таблицу к виду
| id | city | name |
|---|
Также требуется решить задачу за одно чтение таблицы и ограничить просмотр таблицы фильтрами через Where.
Я написал запрос
SELECT id,
MAX(CASE WHEN field = 'city' THEN Value END) city,
MAX(CASE WHEN field = 'name' THEN Value END) name
FROM tablename
GROUP BY id
Как его можно оптимизировать под условие задачи? Если это невозможно, то какой запрос сможет?