SQL Exercise: Salary ranges for jobs with a minimum and maximum
SQL SORTING and FILTERING on HR Database: Exercise-35 with Solution
35. From the following table, write a SQL query to find those job titles where maximum salary falls between 12000 and 18000 (Begin and end values are included.). Return job_title, max_salary-min_salary.
Sample table : jobs+------------+---------------------------------+------------+------------+ | JOB_ID | JOB_TITLE | MIN_SALARY | MAX_SALARY | +------------+---------------------------------+------------+------------+ | AD_PRES | President | 20080 | 40000 | | AD_VP | Administration Vice President | 15000 | 30000 | | AD_ASST | Administration Assistant | 3000 | 6000 | | FI_MGR | Finance Manager | 8200 | 16000 | | FI_ACCOUNT | Accountant | 4200 | 9000 | | AC_MGR | Accounting Manager | 8200 | 16000 | | AC_ACCOUNT | Public Accountant | 4200 | 9000 | | SA_MAN | Sales Manager | 10000 | 20080 | | SA_REP | Sales Representative | 6000 | 12008 | | PU_MAN | Purchasing Manager | 8000 | 15000 | | PU_CLERK | Purchasing Clerk | 2500 | 5500 | | ST_MAN | Stock Manager | 5500 | 8500 | | ST_CLERK | Stock Clerk | 2008 | 5000 | | SH_CLERK | Shipping Clerk | 2500 | 5500 | | IT_PROG | Programmer | 4000 | 10000 | | MK_MAN | Marketing Manager | 9000 | 15000 | | MK_REP | Marketing Representative | 4000 | 9000 | | HR_REP | Human Resources Representative | 4000 | 9000 | | PR_REP | Public Relations Representative | 4500 | 10500 | +------------+---------------------------------+------------+------------+
Sample Solution:
-- Selecting 'job_title' and calculating the salary differences as 'max_salary - min_salary'
SELECT job_title, max_salary - min_salary AS salary_differences
-- Specifying the table to retrieve data from ('jobs')
FROM jobs
-- Filtering the results to include only those with 'max_salary' between 12000 and 18000
WHERE max_salary BETWEEN 12000 AND 18000;
Sample Output:
job_title | salary_differences ----------------------+-------------------- Finance Manager | 7800 Accounting Manager | 7800 Sales Representative | 6000 Purchasing Manager | 7000 Marketing Manager | 6000 (5 rows)
Code Explanation:
The said query in SQL which selects the "job_title" and a calculated column "salary_differences", which is the difference between the "max_salary" and "min_salary". The query retrieves data from the 'jobs' table and only includes rows where the value in the "max_salary" column is between 12000 and 18000. There will be a result table with the "job_title" and the calculated salary differences for each job title, where the maximum salary is between 12000 and 18000.
Relational Algebra Expression:
Relational Algebra Tree:
Practice Online
Query Visualization:
Duration:
Rows:
Cost:
Contribute your code and comments through Disqus.
Previous SQL Exercise: Jobs which average salary is above 8000.
Next SQL Exercise: Employees whose first or last name begins with D.
What is the difficulty level of this exercise?
Test your Programming skills with w3resource's quiz.
It will be nice if you may share this link in any developer community or anywhere else, from where other developers may find this content. Thanks.
https://w3resource.com/sql-exercises/sorting-and-filtering-hr/sql-sorting-and-filtering-hr-exercise-35.php
- Weekly Trends and Language Statistics
- Weekly Trends and Language Statistics