我有一个包含两列的表:
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轴值的点是无关紧要的。
答案 0 :(得分:1)
MySQL支持join
命令的delete
语法。
使用此语法,您可以为要删除的相应记录设置过滤器:
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);