楼主: playmore
2558 1

请问如何用SQL取到每组前n个观测值 [推广有奖]

已卖:1645份资源

学科带头人

2%

还不是VIP/贵宾

-

TA的文库  其他...

R相关

经济学相关

金融工程

威望
1
论坛币
16356 个
通用积分
8.6697
学术水平
372 点
热心指数
394 点
信用等级
341 点
经验
15297 点
帖子
1194
精华
1
在线时间
1332 小时
注册时间
2007-1-11
最后登录
2025-12-1

初级学术勋章 初级热心勋章 中级热心勋章

楼主
playmore 发表于 2013-8-28 09:02:02 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
比如有下面的数据集:

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该怎么办
求助版上大虾了,谢谢

二维码

扫码加我 拉你入群

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

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

关键词:sql 观测值 如何用 Input data步 如何

playmore邀请您访问ChinaTeX论坛!!!进入ChinaTeX论坛

沙发
pobel 在职认证  发表于 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;

如果降序排的第四个和第三个数相等,则需要一定修改
和谐拯救危机

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-31 01:17