Please note, this is a STATIC archive of website www.w3resource.com from 19 Jul 2022, cach3.com does not collect or store any user information, there is no "phishing" involved.
w3resource

SQL subqueries on employee Database: List the name, salary, and department id for each employee who earns a salary greater than the average salary for their department and list the result in ascending order on department id

SQL subqueries on employee Database: Exercise-53 with Solution

[An editor is available at the bottom of the page to write and execute the scripts.]

53. From the following table, write a SQL query to find those employees who receive a salary higher than the average salary of their department. Sort the result-set in ascending order by department ID. Return employee name, salary, and department ID.

Sample table: employees


Sample Solution:

SELECT e.emp_name,
       e.salary,
       e.dep_id
FROM employees e
WHERE salary >
    (SELECT avg(salary)
     FROM employees
     WHERE e.dep_id = dep_id )
ORDER BY dep_id;

OR

SELECT e.emp_name,
       e.salary,
       e.dep_id
FROM employees e,

  (SELECT avg(salary) A,
          dep_id D
   FROM employees
   GROUP BY dep_id) D1
WHERE D1.D = e.dep_id
  AND e.salary > D1.A;

Sample Output:

 emp_name | salary  | dep_id
----------+---------+--------
 KAYLING  | 6000.00 |   1001
 JONAS    | 2957.00 |   2001
 SCARLET  | 3100.00 |   2001
 FRANK    | 3100.00 |   2001
 BLAZE    | 2750.00 |   3001
 ADELYN   | 1700.00 |   3001
(6 rows)

Practice Online


Structure of employee Database:

employee database structure

Have another way to solve this solution? Contribute your code (and comments) through Disqus.

Previous: From the following table, write a SQL query to find recently hired employees of every department. Sort the result-set in descending order by hire date. Return complete information about the employees.
Next: From the following table, write a SQL query to find those employees who earn a commission and receive maximum salary. Return complete information about the employees.

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.



SQL: Tips of the Day

SQL Server SELECT into existing table.

INSERT INTO dbo.TABLETWO
SELECT col1, col2
  FROM dbo.TABLEONE
 WHERE col3 LIKE @search_key

This assumes there's only two columns in dbo.TABLETWO - you need to specify the columns otherwise:

INSERT INTO dbo.TABLETWO
  (col1, col2)
SELECT col1, col2
  FROM dbo.TABLEONE
 WHERE col3 LIKE @search_key

Database: SQL Server

Ref: https://bit.ly/3y6tpA3