2011-12-29 25 views
0

的日期四分之一我必须从日期的帮助下从下表中检索最高薪酬的员工姓名,工资和各自的季度。要找出最高值,从表

Table name: Emp 
------------------ 
Empname  Salary  Date 
Hunter  3260000  31aug2011 
Antony  2000000  30nov2011 
Mark  1800000  1dec2011 
Gabriel  2300000  31oct2011 
Christian 2400000  31oct2011 
Gabriel  2250000  30Nov2011 
Hunter  2280000  30sep2011 

请帮忙。提前致谢。

甲骨文 - 11g第

+0

你想看到的最高** **整体薪酬,或者每季度最高** ** – 2011-12-29 12:04:38

+0

总体最高工资,并且低于所述年份的哪个季度。 – shubcbe 2011-12-30 06:00:06

回答

6
SELECT empname, 
     salary, 
     to_char("DATE", 'Q') 
FROM (
    SELECT empname, 
      salary, 
      "DATE", 
      dense_rank() over (order by salaray desc) as rnk 
    FROM emp 
) t 
where rnk = 1 

使用保留字(DATE)作为列名是不是一个很好的主意...

+0

+1和...可能用户需要dense_rank()结束(**分区由trunc(日期,'Q')**顺序由salaray desc)作为rnk – 2011-12-29 12:02:54

+1

@FlorinGhita:它不清楚从我的原始问题是薪水应该是总体最高还是每季度最高。 – 2011-12-29 12:03:48

+0

您可以给我查询两种情况: 1.需要显示总体最高工资和相应的季度。 2.每季度最高Sal,应该显示哪个季度和谁获得最高薪酬。 – shubcbe 2011-12-30 06:03:02