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

JavaScript Discussion :

Données en doublon


Sujet :

JavaScript

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2020
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2020
    Messages : 14
    Points : 19
    Points
    19
    Par défaut Données en doublon
    Bonjour à tous !

    J'ai une base de donnée qui à des doublons et j'aimerai les mettre en évidence pour les supprimer.
    Comme ci-dessous j'ai les colonnes 0 et 1 et j'aimerai faire apparaître dans la colonne 2 si la valeur est apparue pour la première fois X sinon Y.
    J'ai retourné le problème dans tous les sens mais je ne sais pas appelé les valeurs précédentes donc je suis bloqué.
    J'ai un faible niveau en javascript et je suis entrain de mettre en place un outil de BI qui nécessite cela, j'arrive à généré des codes simples mais la ca devient un peu trop compliqué.

    Merci d'avance pour votre aide !

    1 A X
    1 A Y
    1 A Y
    2 B X
    3 C X
    3 C Y
    3 C Y

  2. #2
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 305
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 305
    Points : 15 633
    Points
    15 633
    Par défaut
    vous êtes dans le forum javascript là, c'est parce que vous lisez la base de données avec node.js ?

  3. #3
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 291
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 291
    Points : 39 572
    Points
    39 572
    Billets dans le blog
    9
    Par défaut
    La solution peut dépendre du SGBD utilisé, quel est le votre ?
    (le sujet pourra être déplacé dans le bon forum en conséquence )

    Voici une solution applicable dans la plupart d'entre eux :

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    select C1
         , C2
         , case when RN=1 then 'X' 
                else 'Y'
           end as DBL
    from 
        (select C1
              , C2
              , row_number()
                over(partition by C1, C2
                     order by C1, C2) as RN
         from tab0
        ) as subq

    Avec le jeu d'essai suivant, un peu plus riche que le votre :
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    with tab0(C1, C2, C3) as
       (select 1, 'A', null union all
        select 1, 'B', null union all
        select 1, 'B', null union all
        select 2, 'A', null union all
        select 3, 'A', null union all
        select 3, 'A', null union all
        select 3, 'D', null union all
        select 3, 'D', null
       )

    on obtient :
    C1 C2 DBL
    1 A X
    1 B X
    1 B Y
    2 A X
    3 A X
    3 A Y
    3 D X
    3 D Y

  4. #4
    Membre émérite Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 896
    Points : 2 838
    Points
    2 838
    Par défaut
    Bonjour,

    Je ne sais pas si c'est possible dans votre cas mais j'imagine que oui.

    Il suffirait de lire plusieurs fois les données.
    Une première fois pour stocker l'information de "doublons" et la seconde fois pour l'affichage (code actuel)

    C'est un peu embêtant à faire en JavaScript mais le plus simple est sûrement de le mettre dans un objet.
    Admettons qu'on ait les données suivante (on ne va regarder que l'élément sur lequel repose les doublons ici) : A B C D A E F A G
    On a donc 3 fois A et pas d'autres doublons.

    On parcours donc nos valeurs, et on va les sauvegarder dans un objet destiné à compter les doublons

    Code javascript : 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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    var mes_donnees = [
    {
    	lettre: 'A',
    	// ...
    },
    {
    	lettre: 'B',
    	// ...
    },
    {
    	lettre: 'C',
    	// ...
    },
    {
    	lettre: 'D',
    	// ...
    },
    {
    	lettre: 'A',
    	// ...
    },
    {
    	lettre: 'E',
    	// ...
    },
    {
    	lettre: 'F',
    	// ...
    },
    {
    	lettre: 'A',
    	// ...
    },
    {
    	lettre: 'G',
    	// ...
    },
    ];
     
    var doublons_counter = {};
     
    for(left i = 0; i < mes_donnees.length; i++) {
    	if(typeof doublons_counter[mes_donnees[i]] === 'undefined') {
    		doublons_counter[mes_donnees[i]] = 1;
    	} else {
    		doublons_counter[mes_donnees[i]]++;
    	}
    }

    Le tableau doublons_counter contient le nombre de fois que chaque valeur est représentée (par défaut: 1 fois = pas de doublon)
    Ce tableau (qui est un object) a pour index la valeur de doublon, on peut donc facilement afficher cette valeur lors de l'affichage HTML

Discussions similaires

  1. Requete sur deux table identiques donne des doublons
    Par mimilamite dans le forum Langage SQL
    Réponses: 12
    Dernier message: 20/11/2008, 14h32
  2. probleme base de données en doublons
    Par easty dans le forum Développement
    Réponses: 1
    Dernier message: 12/11/2008, 19h53
  3. créer une série de chiffre aléatoire dans une plage donnée, sans doublon
    Par ProgElecT dans le forum Vos contributions VB6
    Réponses: 4
    Dernier message: 02/07/2008, 10h02
  4. [Conception] Insertion de données sans doublon
    Par Yukhaa dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 19/10/2006, 08h35
  5. Supprimer des données en doublon
    Par AlainTech dans le forum Contribuez
    Réponses: 0
    Dernier message: 01/09/2005, 11h35

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