【SAS】グループで最大値を持つレコードの抽出
グループで最大値を持つレコードを取りだそう!
たとえば、次の様なテーブルがあったとして
同一IDで最大の金額を持つレコードを取り出した次の様なテーブルが作りたいとします。
並び替えて最初のレコードを取り出す
PROC SQLだけで書けそうで書けなかったので、昔やった並び替えて最後のレコードを取り出すという方式でやってみることにしました。
/** IDと金額順に並び替える(PROC SORTでも可) **/ PROC SQL; CREATE TABLE data2 AS SELECT ID ,取引方法 ,金額 FROM data1 ORDER BY ID, 金額; QUIT; /** 最後のレコードだけ取り出す **/ DATA data3; SET data2; BY ID; IF LAST.ID THEN OUTPUT; RUN;