求一个排名的sql 大家好,我想去一个每年业绩前五名的产品,该如何用一条sql语句取呢?比如表结构如下:表名:tab字段:year(年),prem(业绩),prod_id(产品)。用一条语句取每年业绩前5明的产品,谢谢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 select m.* from(select t.* , row_number() over(partition by year order by prem desc) px from tab t) mwhere px <= 5 select year, prod_id, premfrom (select year, prod_id, prem, row_number() over(partition by year,prod_id order by prem desc) rn from tab)where rn<=5 row_number不包含并列的情况如果有并列分为两种情况用不同的函数有两第一并列不跳过第二dense_rank有两第一并列跳过第二rank impdp 导入问题 oracle中创建自动增长列错误 关于自我连接中的 on 和 where 求写复杂sql语句,有测试数据 SQL触发器问题(数据库 使用sqlplus这个软件) 一个SQL语句,同时跟新两张关联表 如何查询id最小的记录? 在线等!急急急!!!!!! (plsql)如何从procedure 中获取参数值 定义constraint foreign key时,被引用表上的主键写与不写有什么区别? oracle 查询 急急急急!! ORACEL with as 上面能建索引吗
(
select t.* , row_number() over(partition by year order by prem desc) px from tab t
) m
where px <= 5
prod_id,
prem
from (select year,
prod_id,
prem,
row_number() over(partition by year,prod_id order by prem desc) rn
from tab)
where rn<=5
如果有并列分为两种情况用不同的函数
有两第一并列不跳过第二
dense_rank
有两第一并列跳过第二
rank