SAS sql。如何使用sas sql排名?

时间:2014-09-18 22:18:41

标签: sas

我有一张不同来源的人员及其费用表。

name    expenseid   amount
mike    1           100
mike    2           200
nick    3           100
mike    4           500
peter   5           300
nick    6           150
…       …           …

对于每个人,我需要获得十大最昂贵的交易。这是我试过的。

proc sql;
select name, expenseid, amount 
from table2
qualify row_number over(partition by expenseid order by amount desc) < 11 
group by name;
quit;

但Sas无法识别row_number。我怎样才能改进它?

1 个答案:

答案 0 :(得分:2)

PROC SQL不支持它。在SQL中有一个函数可以执行它,但我不认为它是官方支持的(即R&amp; D中的某个人将其投入)。因此,我会使用更传统的SAS方法。

PROC SORT data=table2;
by name descending amount;
run;

data table2(drop=count);
set table2;
by name;
retain count;
if first.name then
   count = 0;
count = count + 1;
if count < 11;
run;