简体   繁体   English

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

[英]SQL Deleting data based on max value of column

I am looking to delete data from a table based on the max value of an index column - 23. Error received is 'In valid use of group function' 我正在基于索引列的最大值-23从表中删除数据。收到的错误是“有效使用组函数”

Currently Have: 目前拥有:

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

Thanks 谢谢

You can use JOIN : 您可以使用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;

Note: This uses CROSS JOIN . 注意:这使用CROSS JOIN You can put the condition in an ON clause instead of a WHERE clause. 您可以将条件放在ON子句中,而不是WHERE子句中。 I'm leaving it in this format because it more closely matches the query in the question. 我将其保留为这种格式,因为它与问题中的查询更加匹配。

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM