关于mysql 和 hive 中的多条相同数据 去重

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);

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值