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

#1 16/06/2016 14:07:27

toma
Membre

Sélection selon valeurs identiques et comparaison autre champ

Bonjour à tous,

Je viens d'arriver sur le forum et tout récent utilisateur de PostgreSQL.
Je me suis un peu acharné à chercher une solution en ligne, mais je ne dois pas posséder les bons "mots clés" pour expliciter mon problème de requête.

Je m'explique :

Pour simplifier, ma table possède un champ id, un champ 1 et un champ 2. Certaines valeurs du champ 1 se répètent. Je souhaiterais supprimer les entrées dont les valeurs sont dupliquées selon une comparaison des valeurs dans le champ 2.

Par exemple lorsque le champ 1 est identique entre 2 entrées, supprimer l'entrée dont la valeur en champ 2 est la plus petite...

Pour le moment j'ai réussi à sélectionner les entrées possédant des doublons en champs 1, ainsi :

SELECT * FROM matable a
WHERE matable.champ1 IN(
SELECT matable.champ1 FROM matable
GROUP BY matable.champ1
HAVING (COUNT(*) > 1)
);

Pour la suite je ne vois même pas comment comparer les valeurs d'un même champ...

Merci de votre aide !

Hors ligne

#2 16/06/2016 14:34:46

rjuju
Administrateur

Re : Sélection selon valeurs identiques et comparaison autre champ

Bonjour,

Quelque chose comme ça irait ?

SELECT id, champ1, min(champ2)
FROM matable
GROUP BY id, champ1

Hors ligne

#3 16/06/2016 14:49:06

toma
Membre

Re : Sélection selon valeurs identiques et comparaison autre champ

Bonjour,

Merci pour la réponse rapide.
Effectivement, ça me semble une piste à explorer.

Cependant j'ai un peu trop simplifié mon exemple car en fait mon champ 2 est un champ text, contenant soit des valeurs entières soit du texte. Et je souhaiterais sélection les entiers lorsqu'ils sont "comparés" à du texte ou bien le plus grand entier...

La fonction min n'est donc adaptée dans ce cas.

Merci encore !

Hors ligne

Pied de page des forums