PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

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

#1 31/08/2012 15:02:49

lea
Membre

Enlever les doublons mais valeurs id différentes même pour doublons

Bonjour,

je cherche à faire une requête à partir d'une table existante que je voudrais enregistrer en tant que vue (jusqu'ici il n'y a pas de soucis!!!). Je voudrais regrouper (group by ou distinct) les enregistrements similaires des champs spécifiés. C'est à partir ici que je coince. En fait, les enregistrements sont similaires sauf dans un des champs spécifiés, le champs id (identifiant unique qui est clé primaire dans la table d'origine et j'ai besoin d'un clé primaire pour utiliser ces données).
Un exemple concret pour être plus claire :

table1:
id            couleur            nbre                contour                buffer                forme
-----------------------------------------------------------------------------------------------------------------------------------------------------
1            rouge            14                net                    2                    alpha
2            rouge            2                net                    2                    alpha
3            rouge            5                net                    2                    alpha
4            rouge            5                net                    2                    alpha
5            jaune            16                flou                        3                    beta
6            jaune            8                flou                        3                    beta
7            jaune            20                flou                        3                    beta
8            vert                    5                net                    20                    omega
9            vert                   19                net                    20                    omega
10            bleu                   22                flou                        12                    gamma

Je voudrais faire une requête genre :
CREATE VIEW view1 AS SELECT DISTINCT (buffer), couleur, contour,forme,id  FROM table1;

Pour obtenir le resultat suivant :
View1:
id            couleur                    contour                buffer                forme
-----------------------------------------------------------------------------------------------------------------------------------------------------
1            rouge                    net                    2                    alpha
5            jaune                    flou                        3                    beta
8            vert                        net                    20                    omega
10            bleu                        flou                        12                    gamma


mais malheureusement cette requête me renvoie la table d'origine ce qui est normal car tous le id sont différents!!

Seriez-vous m'aider?

Merci d'avance

Léa

Hors ligne

#2 31/08/2012 15:21:25

rjuju
Administrateur

Re : Enlever les doublons mais valeurs id différentes même pour doublons

Bonjour,

il faut faire un choix pour la valeur id retournée. Dans votre cas, c'est la valeur minimum, ce qui équivaut à cette requête :

SELECT min(id), couleur, contour, buffer, forme FROM table1 GROUP BY  couleur, contour, buffer, forme

Hors ligne

#3 31/08/2012 15:32:47

lea
Membre

Re : Enlever les doublons mais valeurs id différentes même pour doublons

merci beaucoup. j'étais partie sur ce genre de requête mais avec FIRST au lieu de MIN mais cela ne fonctionnait pas!! je ne connaissais pas le bon nom de la fonction dans postgres!!
Encore merci et bon week-end

Lea

Hors ligne

Pied de page des forums