楼主: playmore
2292 1

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

学科带头人

2%

还不是VIP/贵宾

-

TA的文库  其他...

R相关

经济学相关

金融工程

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

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

+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
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-28 18:28