IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage SQL Discussion :

Suppression de doublons


Sujet :

Langage SQL

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2011
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2011
    Messages : 38
    Points : 30
    Points
    30
    Par défaut Suppression de doublons
    Bonjour,
    j'ai besoin d'aide pour modifier une table.
    J'ai plus de 450 000 lignes.
    Dans ces lignes, j'en ai 92 défaillantes avec des doublons, c'est à dire 46 doublons...
    Il faut que je supprime une ligne de chacun de ses doublons(n'importe laquelle puisqu'ils sont identiques) mais en gardant les 2 lignes des doublons dont la valeur de l'attribut 'Toto' est 'Tata'.
    Avez-vous l'idée d'un petit script capable de faire cela?
    Je vous remercie d'avance.

  2. #2
    Membre actif
    Inscrit en
    Janvier 2012
    Messages
    145
    Détails du profil
    Informations forums :
    Inscription : Janvier 2012
    Messages : 145
    Points : 226
    Points
    226
    Par défaut
    Un peu de lecture sur la suppression des doublons . Tu peux commencer au début de l'article d'ailleurs si tes lignes ne sont pas totalement identiques.

  3. #3
    Expert éminent
    Avatar de Lyche
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2007
    Messages
    2 523
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 523
    Points : 6 775
    Points
    6 775
    Billets dans le blog
    4
    Par défaut
    sinon tu as la possibilité d'utiliser un row_number() partition by et de supprimer toutes les occurences dont le rang > 1.

    Un exemple.

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    ;WITH dedoub AS (
        SELECT id
             , ROW_NUMBER() OVER (PARTITION BY champunique ORDER BY dateTest ) Rang
        FROM dbo.maTable )
     
    DELETE
    FROM maTable t
    WHERE EXISTS ( SELECT NULL
                     FROM dedoub d
                    WHERE d.id = t.id
                      AND d.Rang > 1 );

    Il suffit de remplacer les différentes informations concernant les tables et tu peux dédoublonner n'importe quelle table.

    Cordialement,
    Lyche
    Rejoignez la communauté du chat et partagez vos connaissances ou vos questions avec nous

    Mon Tutoriel pour apprendre les Agregations
    Consultez mon Blog SQL destiné aux débutants

    Pensez à FAQ SQL Server Ainsi qu'aux Cours et Tuto SQL Server

Discussions similaires

  1. Suppression de doublons et insertion
    Par Samish dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 15/08/2005, 21h57
  2. Réponses: 17
    Dernier message: 03/12/2004, 11h17
  3. [langage] Suppression de doublon dans tableau
    Par LFC dans le forum Langage
    Réponses: 5
    Dernier message: 15/04/2004, 14h08
  4. Requête de suppression de doublons : besoin d'aide
    Par biocorp dans le forum Langage SQL
    Réponses: 3
    Dernier message: 27/01/2004, 17h04
  5. [LG]Suppression de doublons
    Par moustique31 dans le forum Langage
    Réponses: 5
    Dernier message: 20/12/2003, 21h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo