请选择 进入手机版 | 继续访问电脑版

数据家园

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 25|回复: 0

MySQL删除重复数据(多字段)

[复制链接]

51

主题

54

帖子

289

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
289
发表于 6 天前 | 显示全部楼层 |阅读模式
背景

从网上爬取了一些基金股票持仓数据,导入到了数据库。但是数据库表当时没有创建索引。导致出现数据重复。如下
20201018114037748.png
爬取的数据重复了,比如前两条,除了id,其他都是一样的,现在需要只保留一条,网上的一些解决方案,都是一些按照单个字段分组,然后进行删除,在这里就不适用了。

分析

这里边,基金代码fund_code,股票代码sec_code,季度quarter_date三者才构成唯一性,所以要根据这三者删除重复数据。思路:先分组查找,然后创建临时表,删除原来的表,更改表名。

实现

由于fund_code, sec_code, quarter_date这三个字段构成唯一性,所以直接按照这三个字段分组查找,并创建临时表tmp

  1. CREATE TABLE tmp SELECT * FROM fund_position GROUP BY fund_code, sec_code, quarter_date;
复制代码
删除原来的表,修改新表的表名

  1. DROP table fund_position;
  2. ALTER table tmp RENAME TO fund_position;
复制代码



回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|数据家园 ( 蜀ICP备13007024号 )

GMT+8, 2021-2-25 19:17 , Processed in 0.043569 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表