大家都进来看一下.怎么取前5条(表里的多个单位各取前3条) 表test里有单位A B C ,每个单位都有多条记录..取每个单位的前3条记录,怎么怎么取?test表:字段一A AAAABBBBBBBBCCC希望大家能帮我解决这个难题,小弟感激不尽!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 select a.*from( select t.*,row_number() over(partition by t.depart_name order by t.depart_name) num from test t) awhere a.num < 4 select a.*from( select t.*,rank() over(partition by t.depart_name order by t.depart_name) num from test t) awhere a.num < 4 建议楼主查看一下rank() over的用法 select t1.*from( select t.*,row_number() over(partition by t.depart_name order by t.depart_name) rownum from test t) awhere t1.rownum <=3 rank()和row_number()稍有不同的。在有相同数据的时候不同,这个需要注意。 恩,用rank貌似确实不行,如果相同的记录太多就会造成误差还是用row_number吧 分析函数over (partition by)正解 学习还是没明白row_number()和rank()的区别.... rownum 1 2 3rank 1 2 2 4dense_rank 1 2 2 3 可以写一个 试试啊 判断插入的记录 关于insert into table select的不可思议现象 求ORCLE SQL语句 ORACLE10G 数据库中如何建立200多个表空间? 如何扩展表空间 关于linux下oracle9i的jdk问题,我能再装一个独立的jdk1.4上去吗? PLSQL连接数据库的问题 怎么杀死InActive的连接? oracle 8i,让赛扬也疯狂!!!Help me, Please! keeptool5.2.2的注册码?? 请问物化视图的增量备份日志,跟我写个触发器记录备份那个快? 使用group by查询
select a.*
from(
select t.*,row_number() over(partition by t.depart_name order by t.depart_name) num
from test t) a
where a.num < 4
select a.*
from(
select t.*,rank() over(partition by t.depart_name order by t.depart_name) num
from test t) a
where a.num < 4
select t.*,row_number() over(partition by t.depart_name order by t.depart_name) rownum
from test t) a
where t1.rownum <=3
还是没明白row_number()和rank()的区别....
2
3
rank 1
2
2
4
dense_rank 1
2
2
3
可以写一个 试试啊