Autre présentation d'une table obtenue par jointure et groupage

Lists: pgsql-fr-generale
From: Denis Bitouzé <dbitouze(at)wanadoo(dot)fr>
To: pgsql-fr-generale(at)postgresql(dot)org
Subject: Autre présentation d'une table obtenue par jointure et groupage
Date: 2008-01-09 21:28:10
Message-ID: 20080109222810.17643722@drums
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-fr-generale

Bonsoir,

j'ai créé une fonction qui me fournit, par jointure naturelle et
groupage, une table qui est de la forme :

etudiant | epreuve | note |
--------------+------------+-------+-
etu_1 | epreuve_1 | n_11 |
etu_1 | epreuve_2 | n_12 |
etu_1 | epreuve_3 | n_13 |
etu_2 | epreuve_1 | n_21 |
etu_2 | epreuve_2 | n_22 |
etu_2 | epreuve_3 | n_23 |
etu_3 | epreuve_1 | n_31 |
etu_3 | epreuve_2 | n_32 |
etu_3 | epreuve_3 | n_33 |
etu_4 | epreuve_1 | n_41 |
etu_4 | epreuve_2 | n_42 |
etu_4 | epreuve_3 | n_43 |

et je voudrais pouvoir créer une requête, au besoin à l'aide de
PL/pgSQL, qui me permette de présenter ces résultats sous la forme :

etudiant | epreuve_1 | epreuve_2 | epreuve_3 | epreuve_4 |
--------------+-----------+-----------+-----------+-----------+-
etu_1 | n_11 | n_12 | n_13 | n_14 |
etu_2 | n_21 | n_22 | n_23 | n_24 |
etu_3 | n_31 | n_33 | n_33 | n_34 |
etu_4 | n_41 | n_44 | n_43 | n_44 |

Je remercie d'avance toute personne qui me mettrait sur une éventuelle
piste...
--
Denis


From: "Daniel Verite" <daniel(at)manitou-mail(dot)org>
To: pgsql-fr-generale(at)postgresql(dot)org
Subject: Re: Autre présentation d'une table obtenue par jointure et groupage
Date: 2008-01-10 15:31:01
Message-ID: 983caa4a-56c4-4463-a389-ebab25e66e26@mm
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-fr-generale

Denis Bitouzé wrote:

> etudiant | epreuve | note |
> --------------+------------+-------+-

[...]

> et je voudrais pouvoir créer une requête, au besoin à l'aide de
> PL/pgSQL, qui me permette de présenter ces résultats sous la forme :
>
> etudiant | epreuve_1 | epreuve_2 | epreuve_3 | epreuve_4 |
> --------------+-----------+-----------+-----------+-----------+-
> etu_1 | n_11 | n_12 | n_13 | n_14 |
[...]

La fonction crosstab() remplit normalement cet office.
Elle est dans le module tablefunc des contribs.
Voir: http://docs.postgresqlfr.org/8.3/tablefunc.html

--
Daniel
PostgreSQL-powered mail user agent and storage:
http://www.manitou-mail.org


From: Denis Bitouzé <dbitouze(at)wanadoo(dot)fr>
To: pgsql-fr-generale(at)postgresql(dot)org
Subject: Re: Autre présentation d'une table obtenue par jointure et groupage
Date: 2008-01-10 21:00:31
Message-ID: 20080110220031.6657cc17@drums
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-fr-generale

Le Thu, 10 Jan 2008 16:31:01 +0100
"Daniel Verite" <daniel(at)manitou-mail(dot)org> a écrit :

> La fonction crosstab() remplit normalement cet office.
> Elle est dans le module tablefunc des contribs.
> Voir: http://docs.postgresqlfr.org/8.3/tablefunc.html

Je vais regarder cela de plus prêt. Par contre, ça ne me semble
implémenté qu'à partir de la version 8.3 ; me trompè-je ?

En tous cas, merci ! C'est visiblement ce que je cherchais...
--
Denis


From: Guillaume Lelarge <guillaume(at)lelarge(dot)info>
To: Denis Bitouzé <dbitouze(at)wanadoo(dot)fr>
Cc: pgsql-fr-generale(at)postgresql(dot)org
Subject: Re: Autre présentation d'une table obtenue par jointure et groupage
Date: 2008-01-10 21:14:56
Message-ID: 47868AD0.4010903@lelarge.info
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-fr-generale

Denis Bitouzé wrote:
> Le Thu, 10 Jan 2008 16:31:01 +0100
> "Daniel Verite" <daniel(at)manitou-mail(dot)org> a écrit :
>
>> La fonction crosstab() remplit normalement cet office.
>> Elle est dans le module tablefunc des contribs.
>> Voir: http://docs.postgresqlfr.org/8.3/tablefunc.html
>
> Je vais regarder cela de plus prêt. Par contre, ça ne me semble
> implémenté qu'à partir de la version 8.3 ; me trompè-je ?
>

Non, il s'agit d'un module contrib. Il était déjà disponible dans les
anciennes versions de PostgreSQL. Le lien vers le manuel de la 8.3 est
dû au fait que les modules contrib sont enfin documentés dans la doc
officielle de PG... (plus besoin de se taper les README des sources,
ouffff).

--
Guillaume.
http://www.postgresqlfr.org
http://dalibo.com