oracle如何取出每个手机号的最大的前五个记录

shiyapingzxc 2019-02-01 02:14:02
...全文
141 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
shiyapingzxc 2019-02-01
  • 打赏
  • 举报
回复
msisdn为手机号,cnt_call是通话次数
现在想要将每条手机号的通话次数进行排序,并取最大的5条,形成每条号码的最大五条都显示在表中。
shiyapingzxc 2019-02-01
  • 打赏
  • 举报
回复
很长,确定吗?
nayi_224 2019-02-01
  • 打赏
  • 举报
回复
引用 6 楼 shiyapingzxc 的回复:
每条号码,不是已经msisdn了吗?
把建表语句,insert语句以及想要的结果发出来。
shiyapingzxc 2019-02-01
  • 打赏
  • 举报
回复
每条号码,不是已经msisdn了吗?
nayi_224 2019-02-01
  • 打赏
  • 举报
回复
引用 4 楼 shiyapingzxc 的回复:
那我现在取出来只有前五条数据,我该怎么做才能让每条号码的前五条都显示呢
partition by 每条号码
shiyapingzxc 2019-02-01
  • 打赏
  • 举报
回复
那我现在取出来只有前五条数据,我该怎么做才能让每条号码的前五条都显示呢
nayi_224 2019-02-01
  • 打赏
  • 举报
回复
引用 2 楼 shiyapingzxc 的回复:
那我如果有些号码不足五条的话,分组排序函数依然能用吗?
可以
shiyapingzxc 2019-02-01
  • 打赏
  • 举报
回复
那我如果有些号码不足五条的话,分组排序函数依然能用吗?
nayi_224 2019-02-01
  • 打赏
  • 举报
回复
select*from (
select t1.*, row_number() over(partition by t1.msisdn, t1.month_number order by t1.cnt_call desc) rn from tab1 t1) t1
where t1.rn <= 5;

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧