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 :

Aidez moi pour cette requête complexe


Sujet :

Langage SQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 4
    Par défaut Aidez moi pour cette requête complexe
    Je suis entrain de travailler sur une table avec des pays et des villes.
    Chaque ville a une population.
    Comment sélectionner les 5 villes les plus peuplées de chaque pays en une requête.

    Merci d'avance pour votre aide

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Par défaut
    bonjour,

    Pour vous aidez, aidez nous d'abord http://www.developpez.net/forums/a69...gage-sql-lire/



  3. #3
    Membre très actif Avatar de hazamor
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2008
    Messages
    179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2008
    Messages : 179
    Par défaut
    tu n'a pas donné la structure de table ni le SGBD, mais tu peut s'aider de cette requête (avec mysql):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    select v.NomVille
    from Ville v
    Order By v.population desc
    limit 0,5

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 4
    Par défaut
    Pour compléter ma demande voici quelques informations complémentaires, j'aimerais effectuer cette requête sur une version de mysql 5.1.43.

    Voici une base de données exemple pour mon cas:

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
    CREATE TABLE `villes` (
      `id_pays` int(11) NOT NULL,
      `population` int(11) NOT NULL,
      `nom` varchar(255) NOT NULL,
      `id` int(11) NOT NULL auto_increment,
      PRIMARY KEY  (`id`)
    );
     
    --
    -- Contenu de la table `villes`
    --
     
    INSERT INTO `villes` (`id_pays`, `population`, `nom`, `id`) VALUES
    (1, 12312, 'ville1', 1),
    (2, 22312, 'ville2', 2);
    (1, 19312, 'ville3', 3),
    (2, 22712, 'ville4', 4);
    (1, 124412, 'ville5', 5),
    (1, 223312, 'ville6', 6);
    (1, 12992, 'ville7', 7),
    (2, 223782, 'ville8', 8);
    (2, 123112, 'ville9', 9),
    (2, 223132, 'ville10', 10);
    (2, 123162, 'ville11', 11),
    (1, 223111, 'ville12', 12);

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 4
    Par défaut
    Merci hazamor cepedant ma version de mysql répond qu'il n'est pas possible d'utiliser un LIMIT dans un sous-requête de type IN

  6. #6
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Par défaut
    Le problème étant que mysql est super limité pour traiter ce genre de demande :s

    Si vous arrivez à adapter certaine requête de cet article vous pourriez vous en sortir (en particulier l'exemple 2) :
    http://sqlpro.developpez.com/article...clause-window/

  7. #7
    Membre très actif Avatar de hazamor
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2008
    Messages
    179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2008
    Messages : 179
    Par défaut
    essayez avec cette requête
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    SELECT pays, ville
    FROM ville v1
    WHERE ville IN ( SELECT v2.ville
                      FROM ville v2
                      WHERE v2.pays=v1.pays
                      and 5<(select count(*)
                                from ville v3
                                  where v2.pays=v3.pays 
                                  and v2.ville<>v3.ville
                                   and v3.population <v2.population))

  8. #8
    Membre très actif Avatar de hazamor
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2008
    Messages
    179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2008
    Messages : 179
    Par défaut
    Citation Envoyé par meritena Voir le message
    les 5 villes les plus peuplées de chaque pays en une requête.
    Excusez moi, j'ai pas bien vu cette partie, donc la requête:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    select pays, ville
    from ville v1
    where ville in ( select v2.ville
                      from ville v2
                      where v2.pays=v1.pays
                      order by population desc
                      limit 0,5)

Discussions similaires

  1. aidez moi pour cette requete
    Par bassoum dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 12/05/2008, 10h51
  2. Aidez moi pour une requête SQL server
    Par pop10 dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 19/06/2007, 23h15
  3. aidez moi pour créer cette applet svp!
    Par walid2012 dans le forum JBuilder
    Réponses: 1
    Dernier message: 11/05/2006, 15h24
  4. AIdez moi à optimiser cette requete MySQL SVP
    Par petozak dans le forum Langage SQL
    Réponses: 4
    Dernier message: 13/09/2005, 16h16
  5. Aidez-mois pour réaliser cette requete..
    Par mobeida dans le forum Langage SQL
    Réponses: 3
    Dernier message: 17/08/2005, 16h35

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