2016-07-17 5 views
0

私は(emp_id,emp_name,salary)などの属性を持つ従業員関係を持っており、各従業員の給与と平均給与の差を見たいと思っています。私はSQL Plusを使用しています。各どのように違いを見つけるためにこのクエリを解決するには?

+1

あなたが(例えばMySQLを使用しているSQLのバージョンあなたがしようとしているクエリを示し、教えてください、SQL Serverなど)。 –

答えて

0

すなわちsalary-avg(salary)これを試してみてください。

SELECT a.emp_id, 
     a.emp_name, 
     a.salary, 
     a.Designation, 
     (a.salary - b.salary) as salary_difference 
FROM employee AS a 
INNER JOIN (
    SELECT Designation, avg(salary) as salary 
    from employee 
    group by Designation) as b 
ON a.Designation = b.Designation ; 

SQL Fiddle HERE

0

これは、ウィンドウ関数を使用して行うことができます。

SELECT emp_id, 
     emp_name, 
     salary 
     salary - avg(salary) over() as diff 
FROM employee 
関連する問題