1.mysql中有重复数据时去重:
select g.* from (select *,apply_no as apply_id from lab_incre_undistinct) g group by g.apply_id
此方法可以实现对整个表的去重。其中apply_no为原标中的标志性字段。
2.hive中有重复数据时去重:
select z.* from (select *,(row_number() over(PARTITION BY apply_id ORDER BY apply_id DESC)) as mm
from lab_incre_undistinct) z where z.mm = 1
在这里用了窗口函数进行了去重,order by 的字段可以为其它字段,例如时间字段等。
3.删除重复记录:
最高效的删除重复记录方法 ( 因为使用了ROWID)例子:
DELETE FROM EMP E WHERE E.ROWID > (SELECT MIN(X.ROWID) FROM EMP X WHERE X.EMP_NO = E.EMP_NO);