数据库去重保留ID最小值SQL语法

    近期在往远程数据库插入大量数据的时候遇到一个小坑,但是面对千万级别的大数据来说就是大坑了 

    借以此文记录处理过程,以便后期再遇到方可解愁;

    我插入数据的格式是以大量的"insert into" 的语句,处理前没有考虑到重复的问题导致才出现需要去重的尴尬动作.

    在这里提供几个思路

    一:首先是如网上所说可以直接拷贝数据库文件,但是版本和数据库类型要一致,但是数据库文件太大了,传输

    到远程也挺慢,其实此方法我个人没尝试过,也觉得不是很可行;

    二 在插入的语法前使用"replace into" 替换"insert into",方可解决重复记录问题;也可采取合并语句的方式方法!

    三 主要还是讲解第三种方法吧,毕竟前两种还是有先决条件的,此种方法主要适用直接操作数据库,用SQL直接去重,这里采用的思

    路是"去重保留最小ID值",下面贴出语法,套用即可,另附一张图解释一下


DELETE FROM `t_src_region_hour_data_2016` WHERE id NOT IN ( SELECT minid FROM ( SELECT min(id) AS minid FROM `t_src_region_hour_data_2016` t GROUP BY t.`datatime`,t.`code`) b );

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值