w3resource

SQL Exercise: Find employees who did two or more jobs in the past

SQL SORTING and FILTERING on HR Database: Exercise-22 with Solution

22. From the following table, write a SQL query to find those employees who worked more than two jobs in the past. Return employee id.

Sample table : job_history


Sample Solution:

SELECT employee_id 
	FROM job_history 
		GROUP BY employee_id 
			HAVING COUNT(*) >=2;

Sample Output:

 employee_id
-------------
         101
         176
         200
(3 rows)

Code Explanation:

The said query in SQL that is selecting the "employee_id" from the 'job_history' table, grouping the results by the "employee_id" column, and only returning the groups that have a count of 2 or more records. In other words, it returns the "employee_id" values of employees who have changed jobs at least twice based on the records in the "job_history" table.

Relational Algebra Expression:

Relational Algebra Expression: Display the ID for those employees who did two or more jobs in the past.

Relational Algebra Tree:

Relational Algebra Tree: Display the ID for those employees who did two or more jobs in the past.

Practice Online


HR database model
HR database model

Query Visualization:

Duration:

Query visualization of Display the ID for those employees who did two or more jobs in the past - Duration

Rows:

Query visualization of Display the ID for those employees who did two or more jobs in the past - Rows

Cost:

Query visualization of Display the ID for those employees who did two or more jobs in the past - Cost

Contribute your code and comments through Disqus.

Previous SQL Exercise: Find employees who is working given departments.
Next SQL Exercise: Difference between highest and lowest salary for a job.

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.



Follow us on Facebook and Twitter for latest update.

SQL: Tips of the Day

Difference between natural join and inner join

One significant difference between INNER JOIN and NATURAL JOIN is the number of columns returned-

Consider:

TableA                           TableB
+------------+----------+        +--------------------+    
|Column1     | Column2  |        |Column1  |  Column3 |
+-----------------------+        +--------------------+
| 1          |  2       |        | 1       |   3      |
+------------+----------+        +---------+----------+

The INNER JOIN of TableA and TableB on Column1 will return

SELECT * FROM TableA AS a INNER JOIN TableB AS b USING (Column1);
SELECT * FROM TableA AS a INNER JOIN TableB AS b ON a.Column1 = b.Column1;
+------------+-----------+---------------------+    
| a.Column1  | a.Column2 | b.Column1| b.Column3|
+------------------------+---------------------+
| 1          |  2        | 1        |   3      |
+------------+-----------+----------+----------+

The NATURAL JOIN of TableA and TableB on Column1 will return:

SELECT * FROM TableA NATURAL JOIN TableB
+------------+----------+----------+    
|Column1     | Column2  | Column3  |
+-----------------------+----------+
| 1          |  2       |   3      |
+------------+----------+----------+

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

 





We are closing our Disqus commenting system for some maintenanace issues. You may write to us at reach[at]yahoo[dot]com or visit us at Facebook