SQL Exercise: Display department, grade, and number of SALESMEN
SQL employee Database: Exercise-100 with Solution
[An editor is available at the bottom of the page to write and execute the scripts.]
100. From the following table, write a SQL query to identify departments with at least two SALESMEN in each grade. Return department name, grade and number of employees.
Sample table: employees
Sample table: department
Sample table: salary_grade
Sample Solution:
SELECT d.dep_name,
s.grade,
count(*)
FROM employees e,
department d,
salary_grade s
WHERE e.dep_id = d.dep_id
AND e.job_name = 'SALESMAN'
AND e.salary BETWEEN s.min_sal AND s.max_sal
GROUP BY d.dep_name,
s.grade
HAVING count(*) >= 2;
Sample Output:
dep_name | grade | count -----------+-------+------- MARKETING | 2 | 2 MARKETING | 3 | 2 (2 rows)
Explanation:
The given query in SQL that retrieves information about the number of salesmen in each department and their corresponding salary grade, but only for departments where there are at least two salesmen from the 'employees', 'department', and 'salary_grade' tables.
The query performed a joins between the 'employees', 'department', and 'salary_grade' tables based on the employee's department ID, job name, and salary range.
The "WHERE" clause filters the results to include only those employees with the job name of "SALESMAN" and whose salary falls within the salary range of their corresponding salary grade.
The "GROUP BY" clause groups the results by department name and salary grade, so the query returns one row for each department and salary grade combination with the count of salesmen in that group.
The "HAVING" clause filters the results to only include groups with a count of two or more salesmen, so the query will only return departments where there are multiple salesmen in the same salary grade.
Relational Algebra Expression:
Relational Algebra Tree:
Practice Online
Sample Database: employee
Have another way to solve this solution? Contribute your code (and comments) through Disqus.
Previous SQL Exercise: Grade, number of employees, and salary for each grade.
Next SQL Exercise: List the number of employees in each department.
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://www.w3resource.com/sql-exercises/employee-database-exercise/sql-employee-database-exercise-100.php
- Weekly Trends and Language Statistics
- Weekly Trends and Language Statistics