Vous n'êtes pas identifié(e).

#1 25/03/2018 11:39:51

mozardyao
Membre

Requete pivot

Bonjour,
J'aimerais savoir comment construire une requete pivot.

Hors ligne

#2 26/03/2018 08:07:50

ced
Membre

Re : Requete pivot

Bonjour,

Vous pouvez passer par l'extension tablefunc : https://www.postgresql.org/docs/current … efunc.html
Ou bien en utilisant la fonction décrite sur le wiki de PostgreSQL : https://wiki.postgresql.org/wiki/Pivot_query (jamais testé pour ma part).

Hors ligne

#3 26/03/2018 15:21:18

dverite
Membre

Re : Requete pivot

Il faut savoir si le besoin est un pivot avec colonnes statiques ou dynamiques.

Si la liste des colonnes est statique, la fonction crosstab() de tablefunc peut faire l'affaire.

Si la liste des colonnes est dynamique (peut changer d'une exécution à l'autre) il faut générer dynamiquement la requête qui va afficher les résultats pivotés. Cette requête peut être un crosstab mais quand on en est à la générer, on peut aussi bien produire une requête indépendante:

 SELECT 
    autres colonnes,...
    (CASE WHEN colonne='la valeur1' THEN expression END) AS "la valeur1",
   ... etc pour toutes les valeurs possibles de la colonnes

ce résultat étant la structure de base d'un pivot.

Hors ligne

Pied de page des forums