使用SAS显示前10名员工

时间:2016-01-12 13:19:15

标签: sas proc

我想根据地区显示前10名员工名单。     如果2个员工的地区编号相同,那么它应该通过考虑另一个变量销售来排名。

如果2个员工的地区和销售数量也相同,那么在排名时应该考虑另一个变量。

对于这种情况,Proc排名是否有效或是否有另一种方法来实现此输出?

例如,

data input;
input assoc_nm dist_num sales_cnt sales_amt;
datalines;

raju 1 59 1000
kumar 1 59 1600    
ramya 3 54 6900    
lakshmi 2 65 9000
;    
run;
对于dist_num = 1,

输出应如下所示

assoc_nm sales_cnt sales_amt rank

kumar     59         1600     1
raju      59         1000     2

for dist_num = 2,

lakshmi 2 65 9000 1

for dist_num = 3

ramya 3 54 6900

1 个答案:

答案 0 :(得分:0)

因此,对于每个地区,您需要排名前10位,按sales_cnt排序/排序,并且在同一sales_cnt内,按sales_amt排序。

PROC SORT DATA=input ;
  BY district sales_cnt sales_amt ;
RUN ;

DATA input2 ;
  SET input ;
  BY district sales_amt ;
  IF FIRST.district THEN rank=0 ;
  rank+1 ;
  IF rank LE 10 ;
RUN ;

只需使用WHERE语句过滤您想要的任何区域值。