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 :

Requête de jointure en SQL


Sujet :

Langage SQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2019
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Togo

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2019
    Messages : 7
    Par défaut Requête de jointure en SQL
    Bonjour à tous
    S'il vous plaît j'ai besoin d'aide
    J'ai 2 tables employés et services où la clé primaire de service (idServ) a migré vers la table employés...
    Les colonnes de la table employés sont: codeEmp, nom , prénom ,dateNaiss quotiteTravail et idServ
    Les colonnes de service sont idServ,nomServ et des services
    Mon inquiétude est la suivante : je désire répertorier le service Ayant le plus grand nombre d'employés...
    J'ai bien entendu insérer 10 employés et 4 services
    Merci de bien vouloir m'aider

  2. #2
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 778
    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 778
    Billets dans le blog
    10
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    select idserv
         , dense_rank()
           over(order by count(*) desc)
    from ma_table
    group by idserv

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2019
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Togo

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2019
    Messages : 7
    Par défaut
    Bonjour
    Merci beaucoup de m'avoir répondu
    Voilà je suis débutant en SQL et j'avoue qu'il y des fonctions que je ne maîtrise pas comm dense_mark ou encore le Over...
    De plus et j'ai oublié de préciser je travaille sous MySQL et la requête proposée ne marche pas...
    Un peu d'explications m'aiderait beaucoup
    Merci et bonne journée

  4. #4
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 778
    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 778
    Billets dans le blog
    10
    Par défaut
    Effectivement, les fonctions OLAP telles que DENSE_RANK ne sont supportées qu'à partir de la version 8 de MySQL.

    Dans votre cas, il faut donc compter le nombre d'employés par service dans une requête imbriquée avec regroupement, puis extraire le service qui comporte le plus grand nombre d'employés

    Comme suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    select sub.svc
         , sub.cnt
    from (select idserv       svc
               , count(idemp) cnt
          from ma_table
          group by idserv) sub
    order by sub.cnt desc
    limit 1

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2019
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Togo

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2019
    Messages : 7
    Par défaut
    Ah d'accord..et ici sub.cnt et sub.svc représente quoi dans mon cas svp???
    Grand merci

  6. #6
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 778
    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 778
    Billets dans le blog
    10
    Par défaut
    "sub" est un alias de table : c'est un nom que j'ai donné à la table dérivée issue de la requête imbriquée
    "svc" et "cnt" sont des alias de colonnes : ce sont les noms que j'ai donnés à la colonne idserv et au résultat du count de la table dérivée

Discussions similaires

  1. Optimisation requête avec jointure externe SQL Server
    Par ICEMAN_60 dans le forum Développement
    Réponses: 2
    Dernier message: 28/11/2011, 10h08
  2. [SQL] Double requête avec jointure
    Par frakosun dans le forum PHP & Base de données
    Réponses: 11
    Dernier message: 17/01/2008, 15h03
  3. [SQL 2000] Optimisation requête avec jointure multiple
    Par zooffy dans le forum Développement
    Réponses: 5
    Dernier message: 18/09/2007, 15h38
  4. [SQL 2000] Optimisation requête avec jointure multiple
    Par zooffy dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 18/09/2007, 15h38
  5. Réponses: 14
    Dernier message: 17/03/2003, 18h31

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