我有一个包含两列的表格:
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 支持 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);
关于MySQL 删除一列中的重复项,根据第二列保留最小值和最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18391832/