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

SQLite Discussion :

Supprimer les doublons


Sujet :

SQLite

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 4
    Points : 3
    Points
    3
    Par défaut Supprimer les doublons
    Bonjour à tous !

    Quelqu'un sait-il comment supprimer les doublons d'une table avec sqlite ??

    Pour info, j'utilise SQLite 3 implémenté dans Python 2.4 grâce au module pysqlite2.

    Merci !

  2. #2
    Membre régulier Avatar de et.rond.et.rond
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 110
    Points : 119
    Points
    119
    Par défaut
    regarde ce tutoriel :
    http://sqlpro.developpez.com/cours/doublons/

    c'est des explications générales pour n'importe quel type de base de données donc tu devras regarder les différentes méthodes proposées pour voir ce qui est le plus rapide avec SQLite
    ... petit patapon

  3. #3
    Membre actif

    Inscrit en
    Décembre 2004
    Messages
    169
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 169
    Points : 225
    Points
    225
    Par défaut
    Bonjour,

    Toujours selon le tutoriel http://sqlpro.developpez.com/cours/doublons/
    je pense que la solution "2.1.2. Utilisation d'une fonction de ranking" est la plus efficace. Elle demande cependant quelques aménagements pour SQLite :

    1) le jeu de test
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    DROP TABLE IF EXISTS T_DOUBLON;
    CREATE TABLE T_DOUBLON
    (NUM    INT,
     NOM    VARCHAR(32),
     PRENOM VARCHAR(16));
     
    INSERT INTO T_DOUBLON VALUES (33, 'DUPONT', 'marc');
    INSERT INTO T_DOUBLON VALUES (33, 'DUPONT', 'marc');
    INSERT INTO T_DOUBLON VALUES (33, 'DUPONT', 'marc');
    INSERT INTO T_DOUBLON VALUES (47, 'DUPOND', 'alain');
    INSERT INTO T_DOUBLON VALUES (59, 'DUPOND', 'alain');
    INSERT INTO T_DOUBLON VALUES (65, 'Dupond',  'Frédéric');
    INSERT INTO T_DOUBLON VALUES (78, 'DUPOND', 'frédéric');
    INSERT INTO T_DOUBLON VALUES (81, 'DUPOND', 'fréd');
    INSERT INTO T_DOUBLON VALUES (99, 'DUPON',  'éric') ;
    2) Les doublons
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    .mode tabs
    select 'Lignes :' || count(*) from T_DOUBLON;
    select 'Doublons absolus :';
     
    SELECT COUNT(*) AS NBR_DOUBLES, NUM, NOM, PRENOM
    FROM   T_DOUBLON
    GROUP  BY NUM, NOM, PRENOM
    HAVING COUNT(*) > 1;
    3) La suppression des doublons
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    DELETE
    FROM   T_DOUBLON
    WHERE  T_DOUBLON.rowid > 
       (SELECT rowid
        FROM   T_DOUBLON T2
        WHERE  T_DOUBLON.rowid <> T2.rowid
          AND  T_DOUBLON.NUM    = T2.NUM
          AND  T_DOUBLON.NOM    = T2.NOM
          AND  T_DOUBLON.PRENOM = T2.PRENOM);
     
    select 'Doublons absolus apres suppression :';
    SELECT COUNT(*) AS NBR_DOUBLES, NUM, NOM, PRENOM
    FROM   T_DOUBLON
    GROUP  BY NUM, NOM, PRENOM
    HAVING COUNT(*) > 1;
     
    select 'Lignes :' || count(*) from T_DOUBLON;
    ++

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mars 2009
    Messages : 17
    Points : 6
    Points
    6
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DELETE FROM table WHERE pKey NOT IN  (SELECT MAX(pKey) FROM table GROUP BY champDeComparaison);

Discussions similaires

  1. supprimer les doublons dans une table
    Par mavean dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 26/06/2019, 13h26
  2. Comment supprimer les doublons
    Par djelloulc dans le forum MS SQL Server
    Réponses: 9
    Dernier message: 17/09/2013, 14h30
  3. Comment supprimer les doublons?
    Par Dnx dans le forum Langage SQL
    Réponses: 3
    Dernier message: 24/11/2005, 16h35
  4. [vbexcel]Comment supprimer les doublons dans une combobox?
    Par Mugette dans le forum Macros et VBA Excel
    Réponses: 20
    Dernier message: 24/11/2005, 11h12
  5. [ListView]Supprimer les doublons
    Par mohamed dans le forum Composants VCL
    Réponses: 1
    Dernier message: 27/10/2005, 12h14

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