【问题标题】:Display Top 10 Associates using SAS使用 SAS 显示前 10 名员工
【发布时间】:2016-01-12 13:19:14
【问题描述】:

我想显示基于地区的前 10 名员工列表。 如果 2 位员工的地区编号相同,则应考虑另一个变量销售额来排名。

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

对于这种情况,Proc rank 会起作用还是有其他方法可以实现这种输出?

前,

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

对于 dist_num=2,

lakshmi 2 65 9000 1

对于 dist_num=3

ramya 3 54 6900

【问题讨论】:

    标签: sas proc


    【解决方案1】:

    因此,对于每个地区,您需要前 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 语句简单地过滤您想要的任何地区值。

    【讨论】:

    • 非常感谢..它正在工作.. :)
    • 我已经分别创建了周、月和年的顶部关联列表。
    猜你喜欢
    • 1970-01-01
    • 2018-06-23
    • 1970-01-01
    • 1970-01-01
    • 2012-05-20
    • 1970-01-01
    • 1970-01-01
    • 2012-09-08
    • 1970-01-01
    相关资源
    最近更新 更多