Basculer des données en lignes dans plusieurs colonnes

Besoin

Une table est structurée ainsi :

L'objectif est d'afficher la liste ainsi :

Méthode employée

Nous allons nous appuyer sur la capacité de Postgresql à gérer les données sous forme de tableau. Pour cela, les données de la colonne data_other vont être regroupées dans un champ de type tableau dans une première requête, puis chaque valeur du tableau sera affichée dans une nouvelle colonne.

with req as (
select id, array_agg (data_other) as data_other
from table
group by id order by 1)
select id, data_other[1] as data1, data_other[2] as data2 from req;