0
私は(emp_id,emp_name,salary)
などの属性を持つ従業員関係を持っており、各従業員の給与と平均給与の差を見たいと思っています。私はSQL Plusを使用しています。各どのように違いを見つけるためにこのクエリを解決するには?
私は(emp_id,emp_name,salary)
などの属性を持つ従業員関係を持っており、各従業員の給与と平均給与の差を見たいと思っています。私はSQL Plusを使用しています。各どのように違いを見つけるためにこのクエリを解決するには?
の
すなわち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 ;
これは、ウィンドウ関数を使用して行うことができます。
SELECT emp_id,
emp_name,
salary
salary - avg(salary) over() as diff
FROM employee
あなたが(例えばMySQLを使用しているSQLのバージョンあなたがしようとしているクエリを示し、教えてください、SQL Serverなど)。 –