您好,欢迎来到[问答大全]网站首页   源码下载   电子书籍   软件下载   专题
当前位置:首页 >> 问答大全 >> 电脑网络 >> ORACLE怎么写先排序后分组的前5位

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

来源:网络整理     时间:2016/4/10 8:04:55     关键词:ORACLE

关于网友提出的“ORACLE怎么写先排序后分组的前5位”问题疑问,本网通过在网上对“ORACLE怎么写先排序后分组的前5位”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:

问题: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欢迎指导


解决方案1:

    where px <= 5 order by ORDERED DESC, cdate desc
解决方案2:

    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

以上介绍了“ORACLE怎么写先排序后分组的前5位”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/wd/631952.html

相关图片

相关文章