我有一个列名为
的表ID,EMP_NAME,DEPARTMENT,VOTER ID, MOBILE NO,Driver_License_NO,REGISTRATION_DATE
没有员工可以在多个部门注册。如果任何员工在多个部门注册,则将其视为DUPLICATE记录。重复记录可以根据重复的手机号判断。或选民身份证号码。
我想要一个像这样的输出
Name | Previous Department | Current Department | Possible Reason for Duplication(Mobile or Voter ID)
抱歉英语不好
感谢
答案 0 :(得分:0)
执行此操作的正确方法是让数据库执行检查。因此,在清理数据后,应添加唯一索引。这样的事情(我不确定是什么定义了员工):
create unique index unq_atable_empname_department on atable(empname, department);
您可以使用聚合获取所有重复项:
select empname, group_concat(distinct department) as departments
from atable
group by empname
having count(distinct department) > 1;
至于可能的原因,你应该问另一个问题。提供样本数据并根据可能的原因解释您的意思。这个答案是针对问题的要点,找出重复的内容。