SQL根据列的最大值删除数据

时间:2017-05-30 20:47:01

标签: mysql sql delete-row

我希望根据索引列的最大值从表中删除数据 - 23.收到的错误是“有效使用组功能”

目前有:

DELETE FROM Raw_Data 
WHERE
    Raw_Data.Date_Index > MAX(`Date_Index`) - 23

由于

2 个答案:

答案 0 :(得分:0)

您可以使用JOIN

DELETE rd
    FROM Raw_Data rd CROSS JOIN
         (SELECT MAX(Date_Index) as maxdi FROM Raw_data) m
    WHERE rd.Date_Index > maxdi - interval 23 days;

注意:这使用CROSS JOIN。您可以将条件放在ON子句而不是WHERE子句中。我将其保留为此格式,因为它与问题中的查询更匹配。

答案 1 :(得分:0)

DELETE FROM Raw_Data 
WHERE
    Raw_Data.Date_Index > (Select MAX(Date_Index) - 23 from Raw_Data)