2014-04-30 36 views

回答

0

我發現我的答案!

選擇emp_id,SUBSTR(sal_date,1,3)每月,從 (選擇emp_id,sal_date,工資, 最大值(工資)以上(分區由SUBSTR(sal_date,1,3))從emp_salary順序max_sal薪水通過emp_id) 其中salary = max_sal;

結果集:

EMP_ID月薪


EMP1月4000 EMP1二月3000 EMP2一月6000 EMP2四月5000 Emp4十二月5000

0
SELECT e.Emp_ID,MaxSalary,MonthName 
FROM employeeTable e 
INNER JOIN 
(
SELECT MAX(salary) as MaxSalary, 
     LEFT(salary_date,3) as MonthName 
FROM employeeTable 
GROUP BY LEFT(salary_date,3) 
)t 
ON e.Salary=t.MaxSalary 
0

這裏是我的用它拍好它RANK() function

SELECT emp_id, to_char(salary_date, 'MM, YYYY'), salary FROM (
    SELECT emp_id, salary_date, salary, 
    rank() over (partition BY to_char(salary_date, 'MM-YYYY') ORDER BY salary DESC) rnk 
    FROM emp_salary) WHERE rnk = 1 

輸出:

EMP_ID MONTHYEAR SALARY 
Emp2 01, 2014 6000 
Emp1 02, 2014 3000 
Emp1 03, 2014 4000 
Emp2 04, 2014 5000 
Emp4 12, 2014 5000 

這裏的SQL撥弄數據和查詢玩:http://sqlfiddle.com/#!4/e58eaa/32

相關問題