美文网首页
mysql 重复数据的处理

mysql 重复数据的处理

作者: Zzz_CH | 来源:发表于2019-06-19 15:19 被阅读0次

假设有一张表如下,含有部分重复数据,这些重复数据除了 id 不同,其他数据都相同。

id student_id name course_id course_name score
1 2005001 张三 1 数学 69
2 2005002 李四 1 数学 89
3 2005001 张三 1 数学 69
CREATE TABLE `test` (
  `id`          INT UNSIGNED NOT NULL AUTO_INCREMENT,
  `student_id`  INT UNSIGNED NOT NULL,
  `name`        VARCHAR(20)  NOT NULL,
  `course_id`   INT UNSIGNED NOT NULL,
  `course_name` VARCHAR(20)  NOT NULL,
  `score`       INT UNSIGNED NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE = InnoDB;

INSERT INTO `test` (`student_id`, `name`, `course_id`, `course_name`, `score`)
VALUES (2005001, '张三', 1, '数学', 69),
       (2005002, '李四', 1, '数学', 89),
       (2005001, '张三', 1, '数学', 69);

1. 过滤重复数据

使用 group by 进行查找就可以过滤重复数据

SELECT `student_id`, `name`, `course_id`, `course_name`, `score` FROM `test`
  GROUP BY `student_id`, `name`, `course_id`, `course_name`, `score`;

2. 统计重复数据

SELECT count(1) AS `repetitions`, `name` FROM `test`
  GROUP BY `student_id`, `name`, `course_id`, `course_name`, `score`
  HAVING `repetitions` > 1;

3. 删除重复数据

思路:分组后,选出 id 最小的一条,不被选中的 id 全部删除

DELETE FROM `test`
WHERE `id` NOT IN (
  SELECT `min_id`
  FROM (SELECT min(`id`) AS `min_id`
        FROM `test`
        GROUP BY `student_id`, `name`, `course_id`, `course_name`, `score`) AS `a`
);

相关文章

  • MySQL处理数据重复

    菜鸟教程 在mysql数据库中,我们允许数据出现重复的情况。有些时候不需要重复的数据。(所以我们有必要知道数据重复...

  • MySQL 处理重复数据

    1、查询重复记录 select user_name,count(*) as count from user_tab...

  • mysql 重复数据的处理

    假设有一张表如下,含有部分重复数据,这些重复数据除了 id 不同,其他数据都相同。 1. 过滤重复数据 使用 gr...

  • Java Web技术经验总结(十五)

    MySQL在旧表中增加唯一索引时,如何处理原有的重复数据?参考:mysql删除重复记录只保留一条 google的c...

  • MySql 删除重复数据

    MySql 删除重复数据 tags:mysql 重复数据 假设:表:goods 重复字段:name 清除表中...

  • MySQL技巧:处理重复数据

    本文案例以MySQL5.7作为数据库环境。 重复数据产生的原因有多种,比如系统存在bug、重复提交、需求调整(原来...

  • MySQL重复数据处理

    我们主要从以下几个方面来对数据库当中重复数据的处理: MySQL保证数据唯一性 在数据库当中,有些数据我们是允许其...

  • mysql 插入重复数据的处理

    mysql手册-廖雪峰-mysql demo 数据表 方案一、 insert into table (字段,索引字...

  • Mysql数据库查询重复数据

    Mysql数据库查询重复数据

  • 数据分析—网易考拉口红数据分析

    一 数据读取 二 数据清洗 2.1 重复数据处理 重复值进行删除处理 并没有重复数据 2.2 缺失值处理 查看是否...

网友评论

      本文标题:mysql 重复数据的处理

      本文链接:https://www.haomeiwen.com/subject/qdqkqctx.html