Oracle数据库中先按时间(年过滤)在按销量降序在取前十条的数据的sql怎么写

Oracle数据库中先按时间(年过滤)在按销量降序在取前十条的数据的sql怎么写


降序取前十个

select * from (select * from 表名 order by 销量 desc ) where rownum<='10'

过滤时间在降序

SELECT * FROM 表名 
where to_char(时间,'YYYY')='${sta}'
order by 销量 desc

怎么把这两种两种sql结合起来,做到先过滤时间在降序,在取前十

wangchaojie 发布于 2020-5-24 21:12
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
0
张洪威Lv6高级互助
发布于2020-5-24 21:22

select * from (select * from 表名 where to_char(时间,'YYYY')='${sta}' order by 销量 desc ) where rownum<='10'

这样试试。

最佳回答
0
xiaguangmangLv5见习互助
发布于2020-5-25 10:30

select * from (select ROWNUM AS RN,a.* from 表名 a where to_char(a.时间,'YYYY')='${sta}' order by a.销量 desc ) b where b.RN<=10

  • 3关注人数
  • 545浏览人数
  • 最后回答于:2020-5-25 10:30
    请选择关闭问题的原因
    确定 取消
    返回顶部