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 :

Suppression de doublons spécifiques


Sujet :

SAS Base

  1. #1
    Membre Expert
    Avatar de MEGAMIND2
    Homme Profil pro
    Paris
    Inscrit en
    Janvier 2011
    Messages
    1 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Paris

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 029
    Par défaut Suppression de doublons spécifiques
    Bonjour à tous,

    Tout d'abord merci pour la solution proposée à mon pb du vendredi dernier.

    Cependant j'ai un autre probleme:

    Je souhaiterais faire un comptage du nombre de lignes de ma table en pièce jointe, jusque là tout va bien. La spécificité est que, si

    technique_detection (n)='Localisateur' et technique_detection(n+1)='GNSS' et sont égaux à 'D' comme sur l'encadré, je considère que c'est deux lignes sont en doublons, donc j'en compte qu 'un.

    Au total, je dois avoir 8 lignes sans faire de create table.

    Merci de votre aide!!
    Images attachées Images attachées  

  2. #2
    Membre chevronné
    Homme Profil pro
    Consultant Finance/Assurance
    Inscrit en
    Décembre 2013
    Messages
    198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Consultant Finance/Assurance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 198
    Par défaut
    Bonjour,

    Es-tu obligé de passer par du SQL pour réaliser cette tâche ?
    Le SQL n'est pas fait pour traiter des va et vient entre plusieurs observations.

    Voici quand même une solution possible :

    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
    27
    28
    29
    30
    31
     
    Data exemple;
    Input num_course techn :$15. type $ ;
    cards;
    113620 Local A
    113620 Local D
    113620 GNSS D 
    113620 Local A 
    113620 Local D
    113620 Local A
    113620 Local D
    113620 Local A
    113620 Local D
    113621 GNSS D
    113621 Local D
    113621 GNSS A
    113621 Local D
    113621 GNSS D
    ;
    Run;
     
     
    Proc sql;
    Create table ex2 as
    select a.num_course, sum(Case when (a.num_course = b.num_course and a.techn = "Local" and b.techn = "GNSS" and a.type = "D" and b.type = "D") then 0
    	  Else 1
    	  end)  as compte
    from (select *, MONOTONIC() as NB from exemple) a left join (select *, MONOTONIC() as NB from exemple) b
    on a.num_course = b.num_course and a.nb = b.nb - 1
    group by num_course;
    quit;
    Flo00154

  3. #3
    Membre Expert
    Avatar de MEGAMIND2
    Homme Profil pro
    Paris
    Inscrit en
    Janvier 2011
    Messages
    1 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Paris

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 029
    Par défaut
    Je te remercie d'avoir pris le temps de me répondre.
    Je suis plus à l'aise sur SAS mais malheureusement, je ne bosse pas sur SAS en ce moment et je ne peux pas créé de tables, d'ou la difficulté.

    La "rasta roquête" qui m'a générée la table en question est:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    select  numero_course,technique_detection,type_horaire,utc_observation,ci,ch,cr from fluxpr_courses c  inner join fluxpr_positions p
     
    on p.id=c.id_fluxpr_positions
     
    inner join fluxpr_prs pr
     
    on c.id_fluxpr_positions=pr.id_fluxpr_positions where
     
    numero_course='113620'
     
    utc_observation between '2018-08-06:00:00' and '2018-08-12:00:00' and type = 'DetectionTrain'
     
    order by numero_course
    J'essaie de l'adapter par rapport à ton code car j'ai du mal avec les requêtes embriquées

    En tout cas merci beaucoup!!!

  4. #4
    Membre Expert
    Avatar de MEGAMIND2
    Homme Profil pro
    Paris
    Inscrit en
    Janvier 2011
    Messages
    1 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Paris

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 029
    Par défaut Merci
    Merci beaucoup Flo, Pb done!!!!!

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

Discussions similaires

  1. Suppression de doublons et insertion
    Par Samish dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 15/08/2005, 22h57
  2. Réponses: 17
    Dernier message: 03/12/2004, 12h17
  3. [langage] Suppression de doublon dans tableau
    Par LFC dans le forum Langage
    Réponses: 5
    Dernier message: 15/04/2004, 15h08
  4. Requête de suppression de doublons : besoin d'aide
    Par biocorp dans le forum Langage SQL
    Réponses: 3
    Dernier message: 27/01/2004, 18h04
  5. [LG]Suppression de doublons
    Par moustique31 dans le forum Langage
    Réponses: 5
    Dernier message: 20/12/2003, 22h03

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