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

SAS Base Discussion :

Récupérer enregistrement maximum d'un groupe


Sujet :

SAS Base

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2017
    Messages : 14
    Points : 17
    Points
    17
    Par défaut Récupérer enregistrement maximum d'un groupe
    Bonjour à toutes et à tous,

    Je cherche à récupérer dans une table les enregistrements maximum d'une variable quanti en fonction d'un identifiant. Par exemple, pour le jeu de données suivant :

    IDGROUPE IDPERSONNE SCORE
    1 1 50
    1 2 60
    1 3 100
    2 5 8
    2 6 70
    2 7 64
    1 8 29

    Je veux obtenir :
    IDGROUPE IDPERSONNE SCORE
    1 3 100
    2 6 70

    Pour se faire, j'ai essaye avec une proc summary :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    proc summary data=lib.data nway;
       class IDGROUPE;
       id IDPERSONNE SCORE;
       var score;
       output out=LIB.CONTROL_RISQUE_PART max=;
    run;
    Seulement, ce n'est pas l'individu avec le score maximum du groupe qui est sélectionné systématiquement. J'ai donc aussi essayé une proc sql :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    proc sql;
    CREATE TABLE TEST as
    SELECT IDGRRI, IDPART, SCORE 
    	FROM lib.CONTROL_RISQUE_FIN  
    	group by IDGRRI
    	WHERE score=max(score);
    quit;
    Maix ca ne fonctionne pas. Si quelqu'un s'est déjà heurté à ce problème minime, ce serait sympas d'avoir un petit coup de pouce!
    Bonne journée à tous!

  2. #2
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2017
    Messages : 14
    Points : 17
    Points
    17
    Par défaut Résolue
    C'est bon, j'ai trouvé la solution, c'était donc un HAVING à la place du WHERE pour obtenir la table que je voulais!
    Si ça peut intéresser des gens :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    proc sql;
    CREATE TABLE TEST as
    SELECT IDGRRI, IDPART, SCORE 
    	FROM lib.CONTROL_RISQUE_FIN  
    	group by IDGRRI
    	having score=max(score);
    quit;

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

Discussions similaires

  1. Récupérer le maximum d'une valeur par date
    Par Caro30 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 30/01/2007, 13h56
  2. récupérer le maximum d'un champ
    Par badboys206s16 dans le forum ASP
    Réponses: 55
    Dernier message: 20/07/2006, 08h53
  3. Récupérer enregistrements fautifs
    Par steps5ive dans le forum Requêtes et SQL.
    Réponses: 9
    Dernier message: 06/05/2006, 01h07
  4. Réponses: 5
    Dernier message: 26/04/2006, 15h06
  5. Récupérer les maximums pour chaque ensemble ?
    Par vynce dans le forum Langage SQL
    Réponses: 2
    Dernier message: 15/12/2005, 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