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

  1. #1
    Candidat au Club
    Femme Profil pro
    Statisticienne
    Inscrit en
    août 2019
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Statisticienne
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : août 2019
    Messages : 2
    Points : 3
    Points
    3

    Par défaut Suppression de doublons selon des conditions

    Bonjour à tous,

    Je suis débutante sur ce forum et ne sait pas encore comment l'utiliser.

    Je dispose d'une table SAS avec des identifiants renseignés plusieurs fois. J'aimerais sélectionner à chaque fois l'identifiant correspondant à l'échelle de territoire la plus fine.

    Par exemple si pour un id donné, la région est renseignée mais également le département par ailleurs , il faudrait sélectionner l'id avec le ou les département(s).

    Si le quartier est renseigné (la plus fine échelle dans mon cas), c'est cette ligne qu'il faut sélectionner.

    Auriez vous une idée?

    Je vous donne un aperçu de la table afin que vous ayez une idée de comment elle est structurée




    Nom : doub.PNG
Affichages : 24
Taille : 9,2 Ko

  2. #2
    Membre éprouvé
    Inscrit en
    novembre 2009
    Messages
    522
    Détails du profil
    Informations forums :
    Inscription : novembre 2009
    Messages : 522
    Points : 1 030
    Points
    1 030

    Par défaut Suppression de doublons selon des conditions

    Bonjour,

    Une proposition :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    data test;
      input id $ region $ departement $ quartier $ commune $;
      cards;
    10 25 NULL NULL NULL
    10 NULL 27 NULL NULL
    10 NULL NULL NULL 200035665
    111 94 NULL NULL NULL
    113 27 NULL NULL NULL
    113 NULL 25 NULL NULL
    113 NULL 39 NULL NULL
    113 NULL 70 NULL NULL
    113 NULL 90 NULL NULL
    ;
    run;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    data test;
      set test;
      if quartier ne "NULL" then precision=4;
      else if commune ne "NULL" then precision=3;
      else if departement ne "NULL" then precision=2;
      else if region ne "NULL" then precision=1;
    run;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    id     region    departement    quartier    commune     precision
    10      25          NULL          NULL      NULL            1
    10      NULL        27            NULL      NULL            2
    10      NULL        NULL          NULL      20003566        3
    111     94          NULL          NULL      NULL            1
    113     27          NULL          NULL      NULL            1
    113     NULL        25            NULL      NULL            2
    113     NULL        39            NULL      NULL            2
    113     NULL        70            NULL      NULL            2
    113     NULL        90            NULL      NULL            2
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    proc sort data=test;
      by id precision;
    run;
     
    data selec;
      set test(keep=id precision);
      by id;
      if last.id;
    run;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    data test;
      merge test selec(in=selec);
      by id precision;
      if selec;
    run;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    id     region    departement    quartier    commune     precision
    10      NULL        NULL          NULL      20003566        3
    111     94          NULL          NULL      NULL            1
    113     NULL        25            NULL      NULL            2
    113     NULL        39            NULL      NULL            2
    113     NULL        70            NULL      NULL            2
    113     NULL        90            NULL      NULL            2
    Cordialement,

  3. #3
    Candidat au Club
    Femme Profil pro
    Statisticienne
    Inscrit en
    août 2019
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Statisticienne
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : août 2019
    Messages : 2
    Points : 3
    Points
    3

    Par défaut

    C'est bien ce qu'il me fallait

    Merci beaucoup :-)

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

Discussions similaires

  1. Supprimer des doublons selon une condition
    Par chloe44 dans le forum SAS Base
    Réponses: 4
    Dernier message: 04/04/2012, 10h28
  2. afficher des ecrans selon des conditions
    Par chamssou dans le forum SAP
    Réponses: 1
    Dernier message: 24/03/2011, 12h35
  3. Réponses: 13
    Dernier message: 22/07/2009, 14h36
  4. supression des doublons selon différentes conditions ..
    Par gwems dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 17/03/2009, 21h18
  5. [SQL Server 8] fonction Max --- selon des conditions
    Par Baquardie dans le forum Langage SQL
    Réponses: 2
    Dernier message: 31/01/2006, 21h06

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