mysql - 使用phpmyadmin在我的SQL中查询删除大型数据库中的连续重复值
问题描述
我的数据库中有一个带有速度列的表记录。现在前 6 个条目在不同的时间戳中是相同的(连续重复值)。我想删除这些重复的值,只取单个值。一段时间后,速度会发生变化并变为 200,然后再次保持不变,那么我的查询也应该从我的表记录中删除那些连续的重复值。
简而言之,我想过滤我的记录表并使该表没有连续重复的值,仅显示不同时间戳中的单个值。
数据库记录表中的速度:
我尝试了不同的查询来执行其中一些是这些
DELETE t1 FROM records t1
inner join records t2
WHERE t1.speed = t2.speed AND t1.run_date_time < t2.run_date_time
DELETE FROM history
WHERE id IN (
SELECT x.id
FROM (
SELECT id
FROM history AS h1
WHERE
speed = (SELECT speed
FROM history AS h2
WHERE
h2.run_date_time < h1.run_date_time
ORDER BY run_date_time DESC
LIMIT 1)) AS x)
解决方案
根据您的第二个查询,我相信这是history
(不是records
)表,它是 MySql(LIMIT)。
DELETE
FROM history
WHERE id IN (
SELECT x.id
FROM (
SELECT id, lag(speed, 1, speed+1) over(order by run_date_time) != speed newFlag
FROM history ) x
WHERE NOT newFlag)
推荐阅读
- elasticsearch - ES 错误没有为 [过滤] 注册 [查询]
- haskell - 为什么数据库查询是使用箭头的好地方?
- r - 双精度数据类型和数值数据类型的区别
- pdf - Orbeon:如何在生成的 PDF 中显示表单警告
- java - swagger-ui 使用控制器的接口和实现复制端点
- django - Model.Form 中的 `labels = {'text':''}`
- google-apps-script - Google 表单是否有脚本/代码可以在完成后从电子表格中提取数据?
- c# - MVVM Light EventToCommand 并不总是被触发
- ruby-on-rails - 设计 Omniauth 错误丢失方法?
- c# - Implement abstract factory using generic class and interface