weixin_44587952 2022-03-04 17:25 采纳率: 66.7%
浏览 32
已结题

SQL server 无主键表去重

数据转移时不知为何数据重复复制了多次(顺序是按照自增id排序,类似123451234512345这样,但没有主键),表数据量达到3亿多,我想找到一份正确数据有多少条,然后insert into()select top ***() 这样复制成新表后删掉这3亿多的重复数据,但怎样才能找到一份数据有多少条呢?

  • 写回答

1条回答 默认 最新

  • jun471537173 2022-03-05 11:49
    关注

    语句有很多,不过3亿多数据量一条语句估计要执行好久了,还要注意事务日志会不会满的问题,例如
    语句1、SELECT * FROM (SELECT ,ROW_NUMBER() OVER (PARTITION BY ID ORDER BY CREATE_TIME desc) rn FROM dbo.Table_1) t WHERE rn=1
    语句2、SELECT ID FROM dbo.Table_1 GROUP BY ID HAVING COUNT(
    ) = 1

    也通过程序分批处理,每个id取一条数据,取过的id记录下来不重复取(注意内存空间)

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 3月22日
  • 已采纳回答 3月14日
  • 创建了问题 3月4日

悬赏问题

  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度