表中有字段
empid (编号),departnm(部门名),overtime(时间)
用
select departnm,empid,sum(overtime)
from tb
group by departnm,empid可以得到各个部门每个人的时间总计如果只要各个部门中时间总计在排名前10名的数的
得怎么写呢?
empid (编号),departnm(部门名),overtime(时间)
用
select departnm,empid,sum(overtime)
from tb
group by departnm,empid可以得到各个部门每个人的时间总计如果只要各个部门中时间总计在排名前10名的数的
得怎么写呢?
解决方案 »
- 用PL/SQL导出数据的问题
- oracle coherence中间件 data grid有人了解吗?
- stdin is not a socket file descriptor.
- null与索引问题?
- 关于grant
- 一分钟前删除了一个重要表,请问怎么样能恢复,在线等
- oracel 一个比较头痛的问题.(是不是bug???)
- 简单问题,存储过程怎样返回数据集?
- 如何取出表的字段名称!简单的sql
- 调查,请问国内现在那些大中型的软件企业使用Sybase的Powerbuild一套解决方案来进行大型c/s结构应用系统开发的,谢谢!
- not exists 子句 select 什么效率最高
- 大表分页中,数据量大的时候状态字段field的排序问题!
select departnm,empid,sum(overtime)
from tb
group by departnm,empid
)
--前10
WHERE ROWNUM<11
order by overtime
select departnm,empid,sum(overtime) overtime
from tb
group by departnm,empid
order by overtime desc
)
WHERE ROWNUM<11
select departnm,empid,sum(overtime) overtime
from tb
group by departnm,empid
order by overtime desc
)
WHERE ROWNUM<11;
select b.departnm b.empid, b.sn
from(
select a.departnm,a.empid,a.sn, rownum rn
from(
select departnm,empid,sum(overtime) sn
from tb
group by departnm,empid
)a order by a.sn desc
)b where b.rn<11
from(
select departnm,empid,dense_rank()over(partition by departnm order by sum(overtime)desc)dk
from tb
group by departnm,empid)
where dk<=10
select empid,departnm,sum(overtime) time from tb
group by empid
order by time) where rownum<=10 and group by departnm