在MySQL中删除具有不同ID的连续重复值

梅迪·马齐(Mehdi Maazi)

我知道有一吨的关于发现和删除重复值相同的问题mySQL,但我的问题是有点不同:
我有作为列的表IDTimestampprice脚本每隔10秒就会从另一个网页抓取数据并将其保存在数据库中。有时数据最终如下所示:

| id | timestamp | price |   
|----|-----------|-------|   
| 1  | 12:13     | 100   |   
| 2  | 12:14     | 120   |   
| 3  | 12:15     | 100   |   
| 4  | 12:16     | 100   |   
| 5  | 12:17     | 110   |   

如您所见,有3个重复的值,删除pricewithID = 4将在不损害数据完整性的情况下缩小表。我需要remove continuous duplicated records except the first one(具有最低的IDTimestamp)。
有足够的方法吗?(大约有一百万条记录),
我编辑了我的抓取脚本,以便price在添加前检查它是否重复,但是我需要缩小并维护旧数据。

斯拉瓦·罗热涅夫(Slava Rozhnev)

从MySQL 8.0开始,您可以通过以下方式使用窗口函数LAG()

delete tbl.* from tbl
join (
    -- use lag(price) for get value from previous row
    select id, lag(price) over (order by id) price from tbl
) l 
-- join rows with same previous price witch will be deleted
on tbl.id = l.id and tbl.price = l.price;

小提琴

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

删除具有不同值的重复行

从数据框中删除具有特定值的连续重复项

使用PHP删除多维数组中具有重复值的连续数组

使用Pandas删除数据框中具有不同连续值的行

删除Python中具有连续部分重复项的元素

删除一列中具有重复值但另一列中具有不同值的行

删除一列中具有重复值但其他列中具有不同值的行

从pyspark数据框中删除具有相同值但在不同列中的重复行

删除具有连续重复项的元素

如何删除具有重复值的不同列名?

SQL删除具有不同值的重复行,但保留并在单行中显示

在numpy中具有不同重复值的重复索引

列出MySQL中具有不同ID的所有重复名称

对Oracle中具有不同ID的多个记录重复列值

将具有不同值的JSON提取到熊猫中的重复ID列

删除具有毫秒不同采样频率的连续重复项-Python

删除r中另一列中具有相同ID但值不同的行

在mysql中删除重复的行,仅保留具有最低ID的行

如何在mysql中删除具有相同值的重复行?

删除/删除 XML 中的重复行,但优先考虑具有特定 ID 值的所有条目

删除连续重复的值

连续删除重复的值

根据其他子项值,删除具有相同子项值的不同父项中的重复节点

Pandas:如何删除具有单列不同值的重复项,同时保留所述不同值

删除特定列中具有特定值的重复行

删除数据框中具有重复值的行

删除两列中具有重复值的行

从具有多个属性的列表中删除重复值

Laravel删除数组中具有重复值的对象