当前位置: 首页 > 面试题库 >

使用SQL查询获取在多个部门工作的员工人数

沈良策
2023-03-14
问题内容

我试图找出一个查询,该查询显示在多个部门中工作的员工 人数 (数量)。这里的表名和字段:

  • Employee(id_employee,employee_name,薪水)
  • Department(id_dept,dept_name,预算)
  • Department_Employee(id_employee,id_dept,workhours_percentage)

假设Department_Employee表的内容是

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

进行正确的查询后,结果应为2(员工),因为有2个员工在一个以上的部门中工作

  • 员工0001在3个部门工作
  • 员工0002在2个部门中工作

我尝试了以下查询

SELECT COUNT(DISTINCT id_employee)
FROM Department_Employee
GROUP BY id_employee
HAVING COUNT(id_employee)>1

但是结果不对。

请帮帮我。

谢谢。


问题答案:
SELECT COUNT(*)
FROM
(
SELECT id_employee, COUNT(*) AS CNT
FROM Department_Employee
GROUP BY id_employee
) AS T
WHERE CNT > 1


 类似资料:
  • 创建部门表 到目前为止,我已经收到了下面的查询,我无法得到该部门工作的员工人数。我怎么能那么做?

  • 问题内容: 我想显示带有的以及,并且计数应大于5,并且我想让一月份没有被雇用的员工。 我尝试了以下查询 但是在这里我没有数。我也想数。 问题答案: 该查询返回department_id,并且由于我按department_id分组,因此将返回属于每个部门的员工数 输出看起来像这样

  • Sql查询来查找活动员工。根据employee id列降序对输出进行排序,只获取前15条记录。显示员工id、员工姓名、城市、州、国家、薪资、在职日期、状态、部门名称、经理姓名。雇员姓名:用空格字符连接firstname和lastname并只从雇员姓名中提取前10个字母经理姓名:显示firstname和lastname(用空格分隔) null

  • 我有一个表: 和表 而且我需要找到他们部门里工资最高的员工名单。 我可以通过以下方式实现这一点: 有没有更好的方法实现榜单?

  • 我使用MySQL工作台CE为Windows版本5.2.40。 我想一起执行以下SQL查询。但是,我只能通过首先执行查询,然后执行查询,然后执行查询来执行SQL查询。 那么,我如何通过单击来执行< code >创建表 、< code >插入和< code >选择查询呢?