【问题标题】:MySQL remove duplicates in one column, leaving smallest and greatest values based on second columnMySQL删除一列中的重复项,根据第二列保留最小值和最大值
【发布时间】:2013-08-23 06:51:23
【问题描述】:

我有一个包含两列的表格:

count | when
101   | 10:11
101   | 10:12
102   | 10:13
102   | 10:14
102   | 10:15
102   | 10:16
103   | 10:17
105   | 10:18
105   | 10:19
105   | 10:20

我需要删除所有重复的count 条目,但留下两行具有最小和最大when 值:

count | when
101   | 10:11
101   | 10:12
102   | 10:13 _ removed 2 rows
102   | 10:16
103   | 10:17
105   | 10:18 _ removed 1 row
105   | 10:20

这是为了最小化表格大小,主要用于统计目的,因此具有相同 Y 轴值的点是不相关的。

【问题讨论】:

    标签: mysql sql duplicates duplicate-removal


    【解决方案1】:

    MySQL 支持delete 命令的join 语法。

    使用此语法,您可以为要删除的相应记录设置过滤器:

    delete t
        from yourtable t join
             (select count, min(when) as minwhen, max(when() as maxwhen
              from yourtable
              group by count
             ) tokeep
             on t.count = tokeep.count and (t.when > tokeep.minwhen and t.when < tokeep.maxwhen);
    

    【讨论】:

      猜你喜欢
      • 2021-12-29
      • 2018-05-27
      • 1970-01-01
      • 2022-01-22
      • 2016-04-12
      • 1970-01-01
      • 2010-11-29
      • 2019-02-12
      • 1970-01-01
      相关资源
      最近更新 更多