[英]MySQL - delete entry created within seconds/range
我正在使用具有以下結構的 MySQL 數據庫:
sensor value timestamp 1 10 2017-01-25 06:00:00 2 12 2017-01-25 06:20:00 2 12 2017-01-25 06:20:05 3 30 2017-01-25 06:23:00
如您所見,傳感器 2 有多個條目,這些條目是在幾秒鍾內創建的。 我想刪除這 2 個條目之一,這些條目是在 10 秒的時間范圍內創建的。 如何選擇/刪除它們?
有人可以幫我弄這個嗎?
您可以在最大時間戳元組上使用 IN 子句
delete from my_table
where (sensor, timestamp) in (
select sensor, max(timestamp)
from my_table
group by sensor,
having count(*) >1
)
以及重復刪除的時間范圍為 10 秒
delete from my_table
where (sensor, timestamp) in (
select sensor, max(timestamp)
from my_table
group by sensor, UNIX_TIMESTAMP(timestamp) DIV 10
)
為了避免選擇/刪除表,您可以在子選擇上使用連接
delete from my_table
inner join (
select sensor, max(timestamp) my_max
from my_table
group by sensor, UNIX_TIMESTAMP(timestamp) DIV 10
) t on t.sensor = my_table.sensor and t.my_max = my_table.timestamp
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.