[已答复] Matlab table 如何分组排序

[复制链接]
Fisher@paradox 发表于 2022-1-14 08:27:19
本帖最后由 Fisher@paradox 于 2022-1-14 08:30 编辑

也就是实现sql里面 row_number() over(partition by 列名1 order by 列名2) 的效果,

具体问题如下:


a 表如下,id为人员id,日期为签到日期,取每个用户前两天的记录
[td]
iddate
12017-01-01
12017-01-02
12017-01-03
22017-01-01
22017-01-02
22017-01-03
32017-01-01
32017-01-02
42017-01-01


在SQL里分组排序可以使用 row_number() over(partition by 列名1 order by 列名2)select
    id,    date,    row_number() over(partition by id order by date) as rank from a
结果如下:

在此基础上对rank进行筛选就可以得出想要的结果了


那么在matlab中有咩有对应的方法呢?提前感谢高手相助!

3 条回复


WarnerChang 发表于 2022-1-14 09:19:20
假如你的table名为T
tr = T.rank
在对其进行判断不行吗?

Fisher@paradox 发表于 2022-1-14 11:58:49
WarnerChang 发表于 2022-1-14 09:19
假如你的table名为T
tr = T.rank
在对其进行判断不行吗?

原数据没有rank这列呀 问题就是如何生成rank这列

WarnerChang 发表于 2022-1-14 12:31:12
Fisher@paradox 发表于 2022-1-14 11:58
原数据没有rank这列呀 问题就是如何生成rank这列

噢噢,看错了,原来是SQL中的效果啊,那就只能挨个遍历了吧,for循环加if语句判断id
您需要登录后才可以回帖 登录 | 注册

本版积分规则

相关帖子
相关文章
热门教程
站长推荐
快速回复 返回顶部 返回列表