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 :

Extraire des doublons mais sans regroupement


Sujet :

Requêtes MySQL

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 82
    Points : 45
    Points
    45
    Par défaut Extraire des doublons mais sans regroupement
    Bonjour à tous,

    En simplifiant, j'ai une table des villes françaises nommée [communes] avec 2 champs [nom] et [codepostal].

    La problématique :
    1) cette table contient dans les 50000 enregistrements, c'est beaucoup plus que les quelque 36681 communes recensées à ce jour mais c'est normal, vu que cette table contient aussi les cedex (ça, je zappe et je gère !) mais aussi et surtout les grandes villes qui possèdent plusieurs codes postaux, comme par exemple Metz qui est associée à trois codes postaux : 57000, 57050, 57070 - et c'est ça qui m'intéresse !)
    2) donc, je ne veux extraire QUE la liste de ces communes qui apparaissent plusieurs fois dans la table mais avec des codes postaux différents

    Je ne peux pas faire de requête de recherche de doublons du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT COUNT(nom), nom FROM communes GROUP BY nom HAVING COUNT(nom) >1
    ...vu que cette requête va grouper par nom de ville, sans me donner la liste que je veux

    Un exemple concret (avec des données fictives, c'est juste pour l'exemple ) :

    Donc, à partir de ma table [communes] qui contiendrait ces données :

    Code html : 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
     
    <table>
    <tr><td>nom</td><td>codepostal</td></tr>
    <tr><td>Belleville</td><td>80200</td></tr>
    <tr><td>St-Truc des Machin</td><td>85210</td></tr>
    <tr><td>St-Machin</td><td>56110</td></tr>
    <tr><td>GrandeVille</td><td>66510</td></tr>
    <tr><td>GrandeVille</td><td>66520</td></tr>
    <tr><td>GrandeVille</td><td>66570</td></tr>
    <tr><td>GrandeVille</td><td>66590</td></tr>
    <tr><td>GrandeVille</td><td>66510</td></tr>
    <tr><td>PetitVillage</td><td>15240</td></tr>
    <tr><td>Truc sur Bidule</td><td>04520</td></tr>
    <tr><td>Bidule en Machin</td><td>18720</td></tr>
    <tr><td>GrandeMetropole</td><td>91020</td></tr>
    <tr><td>GrandeMetropole</td><td>91050</td></tr>
    <tr><td>GrandeMetropole</td><td>91080</td></tr>
    <tr><td>St-Village des Developpeurs</td><td>84250</td></tr>
    <tr><td>St-Mysql-en-Problèmes</td><td>76200</td></tr>
    </table>

    ... Je ne veux extraire que cette liste :

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <table>
    <tr><td>nom</td><td>codepostal</td></tr>
    <tr><td>GrandeVille</td><td>66510</td></tr>
    <tr><td>GrandeVille</td><td>66520</td></tr>
    <tr><td>GrandeVille</td><td>66570</td></tr>
    <tr><td>GrandeVille</td><td>66590</td></tr>
    <tr><td>GrandeVille</td><td>66510</td></tr>
    <tr><td>GrandeMetropole</td><td>91020</td></tr>
    <tr><td>GrandeMetropole</td><td>91050</td></tr>
    <tr><td>GrandeMetropole</td><td>91080</td></tr>
    </table>

    J'espère que ces explications auront été assez claires... Mais moi je sèche !!!

    Vu les données dont je dispose, ma requête ne peut se baser que sur 2 critères : un nom de ville en commun et une racine de code postal (donc le N° de département) en commun. Avec ça c'est déjà pas mal débroussaillé !

    Grand merci à vous qui pourrez éclairer ma lanterne
    @+

  2. #2
    Membre éclairé Avatar de ypcman
    Homme Profil pro
    Retraité codeur !
    Inscrit en
    Janvier 2011
    Messages
    601
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Retraité codeur !
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2011
    Messages : 601
    Points : 889
    Points
    889
    Par défaut
    Bonjour.


    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT nom, codepostal FROM communes WHERE nom IN (SELECT nom FROM (SELECT nom, COUNT(*) AS 'nb' FROM communes AS c1 GROUP BY nom) AS r1 WHERE r1.nb>1)

Discussions similaires

  1. [XL-2003] Reperer des doublons mais avec condition
    Par merlinus3000 dans le forum Excel
    Réponses: 3
    Dernier message: 12/04/2012, 17h57
  2. [VxiR2] Extraire des doublons
    Par clairettte dans le forum Webi
    Réponses: 3
    Dernier message: 19/10/2011, 22h34
  3. [AC-2007] Identifier et extraire des doublons
    Par jambrosi dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 26/05/2011, 12h47
  4. [XL-2003] extraire des doublons
    Par heliconet dans le forum Excel
    Réponses: 2
    Dernier message: 03/07/2010, 17h41
  5. absence des doublons mais je les veux
    Par red_spiritfr dans le forum Deski
    Réponses: 4
    Dernier message: 21/05/2007, 12h47

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