Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1132 connectés 

  FORUM HardWare.fr
  Programmation

  [SQL] comment supprimer des doublons ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[SQL] comment supprimer des doublons ?

n°63498
Profil sup​primé
Posté le 05-10-2001 à 14:53:14  answer
 

et conserver uniquement un exemplaire  
 
j'ai une base daubée à nettoyer

mood
Publicité
Posté le 05-10-2001 à 14:53:14  profilanswer
 

n°63510
Profil sup​primé
Posté le 05-10-2001 à 15:12:00  answer
 

personne ne sait ?
je precise qu'il s'agit de SQL server
 
merci de me répondre

n°63524
godbout
Génial.
Posté le 05-10-2001 à 16:01:58  profilanswer
 

DISTINCT :??:
 
ou alors j'ai rien compris moi :crazy:

n°63528
jupiler
Un cousin...
Posté le 05-10-2001 à 16:07:04  profilanswer
 

méthode bourrin:
select distinct (champs avec doublons) from table_qui_va_pas
 
le tout dans une table temporaire, puis suppression de l'ancienne table et renommage de la table temporaire
 
 
méthode qu'elle est déjà un peu mieux puisque pas de table temporaire
delete from table_qui_va_pas where champ_double in  
(select count(champ_double) from table_qui_va_pas having count(champ_double) >= 2)
 
pas sur que ca marche sur SQL-Server


---------------
Je ne suis ni pour, ni contre, bien au contraire  
n°63532
Profil sup​primé
Posté le 05-10-2001 à 16:10:15  answer
 

jupiler ta deuxieme methode ne va pas, je pense, laisser un exemplaire du doublon ??????

n°63540
jupiler
Un cousin...
Posté le 05-10-2001 à 16:32:42  profilanswer
 

BenDk97 a écrit a écrit :

jupiler ta deuxieme methode ne va pas, je pense, laisser un exemplaire du doublon ??????  




 
 
ben c'est ce que tu veux non? supprimer les doublons :D
 
 
 
bon alors tu fais une table temporaire qui contient les id des doublons (select ... having count >=2)  
 
puis tu delete les lignes de doublons :
delete from table_qui_va_pas where id in (select id from la_table_temporaire)  
 
(fais une jointure plutot qu'un select in, c'est plus propre)
 
 
il ne te reste plus qu'à réinjecter le contenu de la table temporaire dans la table de départ puisque la table temporaire ne contient qu'un seul exemplaire de chaque doublon

 

[edtdd]--Message édité par jupiler--[/edtdd]


---------------
Je ne suis ni pour, ni contre, bien au contraire  
n°63575
fabd
Posté le 05-10-2001 à 18:31:48  profilanswer
 

delete * from table where id not in (select distinct id from table)
 
La requete imbriqué selectionne 1 exemplaire de chaque (donc ignore les doublons)
Ensuite la 1er requete supprime tout les entrées dont les resultats ne sont pas ds la requete imbriqué, donc les doublons.
 
Ca marche ?

n°63654
Profil sup​primé
Posté le 06-10-2001 à 09:16:40  answer
 

Autre méthode plus simple :
 
tu fais un group by comme on t'a dit
 
Hirondelle 20
Tortue 6
Elephant 3
 
Et là tu lances une boucle qui selectionne le doublon que tu veux garder par ex le plus récent en id
 
SELECT TOP 1 id FROM base WHERE nom = 'hirondelle' ORDER BY id desc
 
Là tu récupères une seule ID : l'ID à pas effacer
 
Et tu effaces le reste :
 
DELETE FROM base WHERE nom = 'hirondelle' AND id <> id_a_pas_effacer

n°63686
fabd
Posté le 06-10-2001 à 13:52:08  profilanswer
 

Euh, c a peut de chose pret la meme chose, sauf ke moi c ecrit en language ki doit fonctionner :)

n°962273
Mr Mazurie​r
linux c pas un calvaire !!!
Posté le 25-01-2005 à 19:47:31  profilanswer
 

salut
j'ai regardé ce que vous donnier comme code mais ca ne marche pas ou alors j'ai mal fais
enfin c'est pas le pb, et j'ai donc fouinné pour trouver une autre solution.
le coup de la table temporaire me plaisait bien, j'ai donc fait une requete:
 
INSERT INTO imprimantesTMP (modele, marque, nogroupe, nogroupe2)
SELECT DISTINCT(modele) FROM imprimantes;
 
et malheuresemnt ca ne marche pas... je capte pas  
si quelqu'un voit une erreur ...


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  [SQL] comment supprimer des doublons ?

 

Sujets relatifs
Espace en SQLEquivalent du LIMIT de mySQL sur SQL Server
Access : meilleur moyen pour supprimer des données automatiquementDrivers jdbc pour SQL Server pour websphère... HELP!!
[PHP + SQL] ORDER BY[SQL Server] Quel est l'équivalent du 'NuméroAuto' sous Access ?
[SQL] un chti problème de requête :([SQL Server 7] Reimportation de fichier .DAT
Requete SQL + Oracle 8un site sur le SQL
Plus de sujets relatifs à : [SQL] comment supprimer des doublons ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR