кросс-таблица с 2 (или более) именами строк

Я пытаюсь транспонировать таблицу с двумя именами строк.
В документации Postgres упоминаетсяcrosstab() Функция может обрабатывать только 1 имя строки, но у меня есть 2 имени строки, как имя и фамилия.

мой основной стол:

fn |  ln |  file_type |attribute
--------------------------------
A  |  1  |  cat1     |abc
A  |  2  |  cat1     |gth
A  |  1  |  cat2     |fgh
B  |  1  |  cat2     |gth

и я хочу, чтобы моя финальная таблица была с 2 начальными строками и тип_файла транспонирован

 fn |  ln |  cat1 | cat2
--------------------------------
 A  |   1 |  abc  | fgh
 A  |   2 |  gth  | 
 B  |   1 |       | gth

Я не смог найти то, что мне нужно в functools ...

версия Postgres 9.3

Ответы на вопрос(2)

Ваш ответ на вопрос