Esta es una solicitud común. Se llama consulta pivote o tabla de referencias cruzadas. PostgreSQL no tiene una buena sintaxis incorporada, pero puede usar la crosstab
función de tablefunc
módulo para hacer lo que quieras
.
Para obtener más información, busque Stack Overflow para [postgresql] [pivot]
o [postgresql] [crosstab]
.
Algunos sistemas de bases de datos relacionales ofrecen una buena manera de hacer esto con una consulta integrada, pero hasta el momento PostgreSQL no lo hace.