员工部门的唯一名称

Posted

技术标签:

【中文标题】员工部门的唯一名称【英文标题】:Unique names with employee department 【发布时间】:2017-03-10 14:04:28 【问题描述】:

我有一个员工数据库,员工多次出现。

同一员工的某些实例具有员工部门,而在其他一些实例中,员工部门缺失。为此,我需要找到不同的员工姓名以及员工部门。

有些员工根本没有任何员工部门。为此,我只需要找到不同的员工姓名。

我的查询:

------for each unique employee, find department
--select columns
select 
  a.employee_name,b.employee_dept
from
  --unique employee names
  (
   select 
     distinct employee_name 
   from 
     employeeDB 
   where 
     employee_name is not null and employee_name != ''
   order by employee_name asc
  ) as a,
  --employee name and employee dept sorted
  (
  select 
     employee_name,employee_dept 
   from 
     employeeDB 
   where employee_name is not null and employee_name != ''
   order by employee_name asc, employee_dept desc
  ) as b
--condition for join
where
  a.employee_name = b.employee_name
order by a.employee_name asc, b.employee_dept desc
limit 1000

我不确定为什么结果没有返回唯一的结果。我得到类似于下面的结果

Name  Dept
A     DepA
A     DepB
A   
B     DepA
B   
C     DepZ
D   
E   

【问题讨论】:

【参考方案1】:

这将获取所有唯一名称(通过对其进行分组)并获取(按字母顺序)最高的 employee_dept 它可以为每个名称找到

select employee_name, max(employee_dept) as dept
from employeeDB 
where employee_name is not null and employee_name != ''
group by employee_name
order by employee_name asc
limit 1000

【讨论】:

抱歉,我重新表述了我的问题。第二列是部门名称。 好的,然后在我的查询中重命名。 问题是部门不是数字查询,而是名称字段,max 可能无法在字符串数据上给出所需的结果 那么让我试试这个查询。谢谢!! 它给了我错误***.com/questions/42762587/…

以上是关于员工部门的唯一名称的主要内容,如果未能解决你的问题,请参考以下文章

SQL:至少有 10 名员工的部门名称

查询同部门某个员工信息SQL语句

如何用oracle查询出部门名称,部门员工数,部门平均工资,部门最低工资雇员的姓名,及工资等级

如何查找该部门所有员工薪水大于30000的部门名称

复杂查询

数据库笔试——查出各部门超出部门平均薪资的员工的姓名,薪资,所在部门名称及部门平均薪水