LesezeichenAbonnierenRSS-Feed abonnieren
Fay123
Obsidian | Level 7

Hallo wieder einmal,

 

ich habe eine Abfrage die mir die Daten nach Größe sortiert rauswirft (Im Data Integration Studio).

 

Ich möchte mir aber nur die 10 größten Fälle anzeigen lassen. Gibt es da eine Option beim Extract z.B.?

 

Danke im voraus!

3 ANTWORTEN 3
GrischaPfister
Fluorite | Level 6

Hallo FAY123,

 

sollte über den SQL-Sort mit descending und der Proc SQL Option outobs=10 relativ einfach machbar sein.

 

Viele Grüße,

 

Grischa

mfab
Quartz | Level 8

Hallo Fay,

 

das sollte mit einem Rank gehen. Hier lässt sich auch steuern, was mit zwei gleichen Beobachtungen geschehen soll.

Anschließend lässt sich ggf. mit einem Where die Ausgabe steuern oder das Ergebnis anderweitig weiterverarbeiten.

(Beispiel in Englisch: https://support.sas.com/documentation/cdl/en/etlug/66819/HTML/default/n1ekkk68nic8q9n1wf7b9o2rdm39.h...

 

Viele Grüße

mfab

GrischaPfister
Fluorite | Level 6

Hallo Fay,

 

noch eine schöne Variante - allerdings in einem User-Exist - ist Proc Means. Hier gibt es die Anweisung IDGROUP, die nach den Ausprägungen (min/max) einer Variable(-nliste) sortiert und dann die N ersten bzw. letzten Ausprägungen einer weiteren Variable(-nliste) in eine Datei speichert. Beispiel für eine Fragestellung: Gib mir Name, Alter und Geschlecht der zehn ältesten Schüler aus (Tabelle Sashelp.Class). Die Ergebnistabelle enthält für jeden Wert eine Variable und kann über Proc Transpose oder einen Data Step gedreht werden.

 

Hier ein Beispiel:


Proc Means noprint data=sashelp.class;
  Output out=Work.test
    idgroup(
      max(age) 
      out[10]
      (name age sex)=   
    )
  ;
Run;

Data Work.Test2 (keep=pos name age sex) ;
  Set Work.Test;
  Array _name n:;
  Array _age a:;
  Array _sex s:;

  Do i=1 To dim(_name);
    pos = i;
    name = _name(i);
    age = _age(i);
    sex = _sex(i);
    Output;
  End;
Run;

Viele Grüße,

 

  Grischa

sas-innovate-2024.png

Join us for SAS Innovate April 16-19 at the Aria in Las Vegas. Bring the team and save big with our group pricing for a limited time only.

Pre-conference courses and tutorials are filling up fast and are always a sellout. Register today to reserve your seat.

 

Register now!

Diskussionsstatistiken
  • 3 Antworten
  • 1311 Aufrufe
  • 3 Kudos
  • 3 in Unterhaltung