Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
Pages : 1
#1 29/11/2018 10:29:22
- trainvapeur
- Membre
inverse de crosstab
Je reviens sur mes tables à plus de 200 champs que j'importe d'Oracle via oracle_fdw. Cela marche tellement bien qu'on me demande des choses plus complexes !
Ces tables sont remplies à 80% de valeurs NULL. On voudrait essayer de faire l'inverse de crosstab; c'est à dire que, pour chaque ligne de la table Oracle, on aurait dans la table Postgre une ligne par champ non NULL. Cette ligne contiendrait un ou plusieurs champs pour la clef, un champ pour le nom du champ Oracle, un pour son type, et 1 pour la valeur (en fait 3 car il faut un champ pour les valeurs numériques, un pour les textes (rares) et un pour les dates).
A priori je n'ai pas trouvé de fonction qui pourrait faire cela. Mais est-ce que quelqu'un l'a déjà fait et pourrait m'aiguiller sur la marche à suivre ?
D'avance merci
Jean
Hors ligne
#2 29/11/2018 15:42:13
- dverite
- Membre
Re : inverse de crosstab
Ca peut se faire en passant par des fonctions json et une jointure latérale.
Voir "Comment dé-pivoter un jeu de données?" dans
https://blog-postgresql.verite.pro/2018 … pivot.html
pour un exemple concret.
@DanielVerite
http://blog-postgresql.verite.pro/
Hors ligne
#3 30/11/2018 12:02:02
- trainvapeur
- Membre
Re : inverse de crosstab
Merci, je regarde cela ce week-end.
Jean
Hors ligne
Pages : 1