rp1qfd 2015-07-16 06:43 采纳率: 100%
浏览 2267
已采纳

ORACLE怎么写先排序后分组的前5位

select *
from (select a.*,
row_number() over(partition by ordered order by cdate desc) px
from (select a.*, b.user_name username
from view_hjzx a, gjjx.sys_users b
where a.userid = b.userid(+)
and a.HANDSET like '%15901054535%') a)
where px <= 5 order by cdate desc
数据是好几种分类,标识是ORDERED,然后我想达到的目的是,最大的日期的ORDERED作为一组,显示前五条,然后按日期排序,第二大的ORDERED前五条,第三大的前五条,日期带领5条组号,不知道怎么写,目前的写法有个问题就是后排序,假设第二组有个日期大于第一组他会跑上去,很苦恼
604790441欢迎指导

  • 写回答

2条回答

  • Tiger_Zhao 2015-07-16 07:09
    关注
        select *
        from (select a.*,
        row_number() over(partition by ordered order by cdate desc) px,
        FIRST_VALUE(cdate) OVER (partition by ordered order by cdate desc
                                 ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
                                ) ordered_date
        from (select a.*, b.user_name username
        from view_hjzx a, gjjx.sys_users b
        where a.userid = b.userid(+)
        and a.HANDSET like '%15901054535%') a)
        where px <= 5
        order by ordered_date DESC, ORDERED DESC, cdate desc
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记