Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
#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
Julien.
https://rjuju.github.io/
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