w3resource

SQLite Exercise: Find the names, the salary of the employees whose salary is greater than the average salary

Write a query to find the names (first_name, last_name), the salary of the employees whose salary is greater than the average salary.

Sample table : employees

+-------------+-------------+-------------+----------+--------------------+------------+------------+----------+----------------+------------+---------------+
| EMPLOYEE_ID | FIRST_NAME  | LAST_NAME   | EMAIL    | PHONE_NUMBER       | HIRE_DATE  | JOB_ID     | SALARY   | COMMISSION_PCT | MANAGER_ID | DEPARTMENT_ID |
+-------------+-------------+-------------+----------+--------------------+------------+------------+----------+----------------+------------+---------------+
|         100 | Steven      | King        | SKING    | 515.123.4567       | 1987-06-17 | AD_PRES    | 24000.00 |           0.00 |          0 | 		  90 |
|         101 | Neena       | Kochhar     | NKOCHHAR | 515.123.4568       | 1987-06-18 | AD_VP      | 17000.00 |           0.00 |        100 |            90 |
|         102 | Lex         | De Haan     | LDEHAAN  | 515.123.4569       | 1987-06-19 | AD_VP      | 17000.00 |           0.00 |        100 |            90 |
|         103 | Alexander   | Hunold      | AHUNOLD  | 590.423.4567       | 1987-06-20 | IT_PROG    |  9000.00 |           0.00 |        102 |            60 |
|         104 | Bruce       | Ernst       | BERNST   | 590.423.4568       | 1987-06-21 | IT_PROG    |  6000.00 |           0.00 |        103 |            60 |
|         105 | David       | Austin      | DAUSTIN  | 590.423.4569       | 1987-06-22 | IT_PROG    |  4800.00 |           0.00 |        103 |            60 |
|         106 | Valli       | Pataballa   | VPATABAL | 590.423.4560       | 1987-06-23 | IT_PROG    |  4800.00 |           0.00 |        103 |            60 |
|         107 | Diana       | Lorentz     | DLORENTZ | 590.423.5567       | 1987-06-24 | IT_PROG    |  4200.00 |           0.00 |        103 |            60 |
|         108 | Nancy       | Greenberg   | NGREENBE | 515.124.4569       | 1987-06-25 | FI_MGR     | 12000.00 |           0.00 |        101 |           100 |
|         109 | Daniel      | Faviet      | DFAVIET  | 515.124.4169       | 1987-06-26 | FI_ACCOUNT |  9000.00 |           0.00 |        108 |           100 |
...........
|         206 | William     | Gietz       | WGIETZ   | 515.123.8181       | 1987-10-01 | AC_ACCOUNT |  8300.00 |           0.00 |        205 |           110 |
+-------------+-------------+-------------+----------+--------------------+------------+------------+----------+----------------+------------+---------------+

View the table

SQLite Code:

-- Selecting the first name, last name, and salary of employees
SELECT first_name, last_name, salary FROM employees 
-- Filtering the results to include only rows where the salary is greater than the average salary
WHERE salary > (SELECT AVG(salary) FROM employees);

Output:

first_name  last_name   salary
----------  ----------  --------
Steven      King        24000
Neena       Kochhar     17000
Lex         De Haan     17000
Alexander   Hunold      9000
Nancy       Greenberg   12000
...			...			...
Michael     Hartstein   13000
Susan       Mavris      6500
Hermann     Baer        10000
Shelley     Higgins     12000
William     Gietz       8300

Explanation:

The above SQLite query selects the first name, last name, and salary of employees from the "employees" table, including only those employees whose salary is greater than the average salary. The average salary is determined using a subquery in the WHERE clause.

Here's a brief explanation of each part of SQLite code:

  • SELECT clause:
    • It selects the "first_name," "last_name," and "salary" columns.
  • FROM clause:
    • Specifies the table from which to retrieve the data, in this case, the "employees" table.
  • WHERE clause:
    • Filters the results to include only rows where the "salary" is greater than the average salary.
  • Subquery:
    • The subquery (SELECT AVG(salary) FROM employees) calculates the average salary from the same "employees" table.

Go to:


PREV : Write a query to find the names (first_name, last_name) of the employees who are managers.
NEXT : Write a query to find the names (first_name, last_name), the salary of the employees whose salary is equal to the minimum salary for their job grade.

Practice SQLite Online


Model Database

Employee Model  Database - w3resource online SQLite practice

Structure of 'hr' database :

hr database


Improve this sample solution and post your code through Disqus.

What is the difficulty level of this exercise?



Follow us on Facebook and Twitter for latest update.