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!
Hallo FAY123,
sollte über den SQL-Sort mit descending und der Proc SQL Option outobs=10 relativ einfach machbar sein.
Viele Grüße,
Grischa
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
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
Nearly 200 sessions are now available on demand in the Innovate Hub.
Watch Now →