Supprimer les doublons

Supprimer les doublons - SQL/NoSQL - Programmation

Marsh Posté le 19-08-2011 à 16:31:32    

Bonjour,  
 
J'ai une table du genre :  
 
Champ1__Champ2__Champ3  
34________A_______G14  
12________B_______F12  
14________A_______G14  
15________B_______F12  
 
Je veux une requête SQL qui me permet de supprimer les doublon sur les champs Champ2 er Champ3 pour obtenir une sélection comme celle là:  
 
Chmp1__Champ2__Champ3  
34________A_______G14  
12________B_______F12  
 
Et Merci !

Reply

Marsh Posté le 19-08-2011 à 16:31:32   

Reply

Marsh Posté le 19-08-2011 à 16:37:51    

Tant que tu sélectionneras Chmp1 dans ta requête, tu ne pourras pas dédoublonner car pour 2 valeurs de Chmp2 et Chmp3 identiques, Chmp1 est différent.


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 20-08-2011 à 03:05:09    

Harkonnen a écrit :

Tant que tu sélectionneras Chmp1 dans ta requête, tu ne pourras pas dédoublonner car pour 2 valeurs de Chmp2 et Chmp3 identiques, Chmp1 est différent.


Je contre avec un:

select min(Chmp1) as Chmp1, Chmp2, Chmp3
from table
group by Chmp2, Chmp3;


Par contre ca dépend de si tu veux récupérer une valeur particulière de Chmp1 ou pas.


---------------
C'était vraiment très intéressant.
Reply

Marsh Posté le 20-08-2011 à 10:55:27    

lasnoufle a écrit :


Je contre avec un:

select min(Chmp1) as Chmp1, Chmp2, Chmp3
from table
group by Chmp2, Chmp3;


Par contre ca dépend de si tu veux récupérer une valeur particulière de Chmp1 ou pas.


Tu contres avec rien du tout car avec ta requête, pour Chmp2 == 'A', Chmp1 sera égal à 14 alors qu'il souhaite récupérer 34. Et idem pour max() et Chmp2 == 'B' :o

 

edit: sorry j'avais pas lu le reste

Message cité 1 fois
Message édité par Harkonnen le 20-08-2011 à 11:01:43

---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 22-08-2011 à 18:38:52    

Harkonnen a écrit :


Tu contres avec rien du tout car avec ta requête, pour Chmp2 == 'A', Chmp1 sera égal à 14 alors qu'il souhaite récupérer 34. Et idem pour max() et Chmp2 == 'B' :o
 
edit: sorry j'avais pas lu le reste


Wesh de toute facons j'ai contré juste pour faire le malin.
 
Son exemple ne choisit ni le min ni le max, a vue de nez on dirait le "premier" enregistrement pour chaque doublon, mais bon on en sait pas plus, et de ce que j'en sais (au moins pour Oracle) il n'y a aucune garantie d'ordre dans les résultats donc le "premier" pourrait etre différent entre deux requetes...  
 
Bref, s'il a un champ supplémentaire sur lequel il veut classer/sélectionner, ca va compliquer un peu et il reviendra nous voir :)


---------------
C'était vraiment très intéressant.
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed