I'm trying to figure out a query which show the number (amount) of employees who worked in more than 1 departments. Here the table name and fields:
Employee(id_employee, employee_name, salary) Department(id_dept, dept_name, budget) Department_Employee(id_employee, id_dept, workhours_percentage)Suppose the content of Department_Employee table is
id_employee  id_dept  workhours_percentage
-----------  -------  --------------------
0001           03         100
0001           04          50
0001           05          60
0002           05          60
0002           09          90
0003           08          80
0004           07          80
0005           06          60
0006           05          70
0007           04          75
0008           10          95
0009           02          25
0010           01          40
With a right query, the result should be 2 (employees), because there are 2 employees who work in more than one department
I tried with the following query
SELECT COUNT(DISTINCT id_employee)
FROM Department_Employee
GROUP BY id_employee
HAVING COUNT(id_employee)>1
But the result isn't right.
Please help me out.
Thanks.
Select the number of employees in each department (you only need to show the department code and the number of employees). SELECT Department, COUNT(*) FROM Employees GROUP BY Department; 10. Select all the data of employees, including each employee's department's data.
SELECT department, COUNT(*) AS "Number of employees" FROM employees WHERE state = 'CA' GROUP BY department; Because you have listed one column in your SELECT statement that is not encapsulated in the COUNT function, you must use a GROUP BY clause. The department field must, therefore, be listed in the GROUP BY section.
The SQL COUNT() is a function that returns the number of records of the table in the output. This function is used with the SQL SELECT statement.
COUNT(*) returns the number of rows in a specified table, and it preserves duplicate rows. It counts each row separately. This includes rows that contain null values.
SELECT COUNT(*)
FROM
(
SELECT id_employee, COUNT(*) AS CNT
FROM Department_Employee
GROUP BY id_employee
) AS T
WHERE CNT > 1
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With