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 :

Classement partiel suivant M meilleures valeurs


Sujet :

Langage SQL

  1. #1
    Membre à l'essai
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2013
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2013
    Messages : 16
    Points : 12
    Points
    12
    Par défaut Classement partiel suivant M meilleures valeurs
    Bonjour ,

    Je cherche à résoudre le problème suivant :
    Supposons une table contenant deux champs :
    - le nom d'un élève
    - une note obtenue

    Pour chaque élève il y a N notes (pouvant varier suivant l'élève).

    Objectif:
    Classer les élèves en fonction des 5 meilleures notes qu'ils ont pu obtenir .

    J'avoue sécher , et votre aide sera la bienvenue.
    D'avance merci.

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

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

    vu que vous ne citez pas votre sgbd ...

    En utilisant une fonction de fenetrage on y arrive assez facilement.

    Soit la table :
    NOTE (#id_eleve, note)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    WITH TMP as (
    SELECT id_eleve, note, row_number() over(partition by id_eleve order by note desc) as rnk
    from NOTE)
     
    SELECT id_eleve, SUM(note) as sum_note
    FROM TMP 
    WHERE rnk < 6
    order by sum_note desc

  3. #3
    Membre à l'essai
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2013
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2013
    Messages : 16
    Points : 12
    Points
    12
    Par défaut
    Bonjour ,

    Je vous remercie pour votre réponse.
    Effectivement, ma question était assez incomplète (je suis sur MySql).
    J'y suis arrivé entre temps autrement, mais encore merci pour votre aide .

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Débutant] Trouver la meilleure valeur tableau
    Par beta15 dans le forum C#
    Réponses: 6
    Dernier message: 19/12/2012, 23h06
  2. Fonction SQL - Les 10 meilleurs Valeurs
    Par zayoub dans le forum Développement
    Réponses: 14
    Dernier message: 21/07/2011, 17h29
  3. Trouver la meilleure valeur
    Par shibo dans le forum Excel
    Réponses: 9
    Dernier message: 07/08/2009, 13h05
  4. Ne retourner que la "meilleure" valeur pour chaque jour
    Par Drakkhen dans le forum Langage SQL
    Réponses: 6
    Dernier message: 27/03/2009, 17h03
  5. avoir classement groupé suivant un champ compteur
    Par stevensf dans le forum Requêtes
    Réponses: 2
    Dernier message: 11/04/2008, 20h20

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