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

Requêtes MySQL Discussion :

[MYSQL 5.5] Liste des doublons avec conditions particulières


Sujet :

Requêtes MySQL

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 16
    Points : 17
    Points
    17
    Par défaut [MYSQL 5.5] Liste des doublons avec conditions particulières
    Bonjour,

    j'ai une table du genre : table_cle (id -> champ unique auto-inc)

    id | idd | cle
    1 | 3 | aa@aa.com
    2 | 4 | aa@aa.com
    3 | 5 | bb@bb.com
    4 | 3 | aa@aa.com
    5 | 6 | bb@bb.com
    6 | 7 | aa@aa.com

    Et en faisant la requete suivante :

    SELECT *, COUNT(*) FROM table_cle GROUP BY cle HAVING COUNT(*)>1

    J'ai le résultat :

    id | idd | cle | COUNT(*)
    1 | 3 | aa@aa.com | 4
    3 | 5 | bb@bb.com | 2

    Ok, mais ce que je souhaiterais au final c'est les doublons dont la valeur idd seraient présente qu'une seule fois dans le groupe ???
    Et me retournerait :

    id | idd | cle | COUNT(*)
    1 | 3 | aa@aa.com | 3 // qui correspondrait au groupe d'id : 1,2,6 car pour l'id : 4 la valeur idd : 3 est deja utilisée par l'id : 1
    3 | 5 | bb@bb.com | 2

    Suis-je assez clair ? Merci d'avance pour votre aide

    FlashG

  2. #2
    Membre expérimenté
    Homme Profil pro
    Développeur C++
    Inscrit en
    Avril 2012
    Messages
    771
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2012
    Messages : 771
    Points : 1 631
    Points
    1 631
    Par défaut
    Bonsoir,

    Lorsque l'on utilise le GROUP BY il faut que toutes les colonnes présentes dans le SELECT n'étant pas soumis à une fonction de regroupement (COUNT, SUM, AGV, ...) soit présentes dans le GROUP BY sous peine de voir afficher des valeurs aléatoires dans ces colonnes.

    Pour votre requête si vous voulez connaitre le nombre de clé apparaissant plusieurs fois dans votre table :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT cle, COUNT(*)
    FROM table_cle
    GROUP BY cle
    Si vous voulez connaitre le nombre d’occurrence d'une clé pour chaque id :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT id, cle, COUNT(*)
    FROM table_cle
    GROUP BY id, cle
    Pour connaitre pour chaque id, idd :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT id, idd, cle, COUNT(*)
    FROM table_cle
    GROUP BY id, idd, cle
    une réponse vous a permis d'avancer ?

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 16
    Points : 17
    Points
    17
    Par défaut
    Merci, mais cela n'était pas ce que je cherchais à faire (j'étais peut être pas assez clair)

    Un collègue vient de m'apporter la réponse :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT *, COUNT(DISTINCT idd) FROM table_cle GROUP BY cle HAVING COUNT(*)>1
    Merci Clément,

    FlashG

  4. #4
    Membre expérimenté
    Homme Profil pro
    Développeur C++
    Inscrit en
    Avril 2012
    Messages
    771
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2012
    Messages : 771
    Points : 1 631
    Points
    1 631
    Par défaut
    Sauf que votre requête n'est pas valide syntaxiquement :

    Lorsque l'on utilise le GROUP BY il faut que toutes les colonnes présentes dans le SELECT n'étant pas soumis à une fonction de regroupement (COUNT, SUM, AGV, ...) soit présentes dans le GROUP BY sous peine de voir afficher des valeurs aléatoires dans ces colonnes.
    une réponse vous a permis d'avancer ?

Discussions similaires

  1. VBA/MACRO : Regrouper la somme des doublons avec conditions
    Par suzette69 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 20/06/2012, 20h24
  2. Liste des sites avec images libres de droits
    Par SteelBox dans le forum Imagerie
    Réponses: 19
    Dernier message: 06/01/2011, 15h38
  3. [MySQL]Recuperer la liste des tables utilisées...
    Par zaventem dans le forum Requêtes
    Réponses: 4
    Dernier message: 21/03/2006, 02h36
  4. Réponses: 13
    Dernier message: 12/01/2006, 10h45
  5. [MySQL] conseils pour gérer des images avec mysql
    Par briiice dans le forum Administration
    Réponses: 9
    Dernier message: 04/01/2006, 09h52

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