SQL Exercise: List the department where there are no employees
SQL subqueries on employee Database: Exercise-77 with Solution
[An editor is available at the bottom of the page to write and execute the scripts.]
77. From the following table, write a SQL query to find those departments where no employee works. Return department ID.
Sample table: employees
Sample table: department
Sample Solution:
SELECT b.dep_id,
count(a.dep_id)
FROM department b
LEFT OUTER JOIN employees a ON a.dep_id=b.dep_id
GROUP BY b.dep_id
HAVING count(a.dep_id) = 0;
Sample Output:
dep_id | count --------+------- 4001 | 0 (1 row)
Explanation:
The said query in SQL that selects the department IDs for all departments with no employees from the 'employees' table.
The left outer join combines all rows from the 'department' and the 'employees' table based on the 'dep_id' column.
The resulting table is then grouped by the 'dep_id' column, using the 'GROUP BY' clause.
The 'COUNT' function counts the number of rows in each group.
The 'HAVING' clause filters the groups to only include those with a count of zero.
Relational Algebra Expression:
Relational Algebra Tree:
Practice Online
Structure of employee Database:
Have another way to solve this solution? Contribute your code (and comments) through Disqus.
Previous SQL Exercise: Count the number of employees performing manager duties.
Next SQL Exercise: SQL Exercises, Practice, Solution
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-subqueries-exercise-employee-database-77.php
- Weekly Trends and Language Statistics
- Weekly Trends and Language Statistics