全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
2504 1
2013-08-28
比如有下面的数据集:

data have;
input id $ num;
datalines;
a 3
a 23
a 54
a 23
b 13
b 98
b 8
d 14
d 23
d 9
d 87
d 95
;
run;

我想用SQL取到每组按降序排列的前三个观测。用data步的first很容易实现,但不知道用SQL该怎么办
求助版上大虾了,谢谢

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2013-8-28 11:35:55
Monotonic()也许能用上。

proc sort data=have; by id descending num;run;
proc sql;
  create table wanted as
   select *, monotonic( ) as _n
    from have
        group by id
    having _n<=min(_n)+2
    order by id,num desc;
quit;

如果降序排的第四个和第三个数相等,则需要一定修改
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群