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

标签 mysql sql delete-row

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

目前有:

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

谢谢

最佳答案

您可以使用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 子句中。我将其保留为这种格式,因为它更符合问题中的查询。

关于mysql - SQL根据列的最大值删除数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44271648/

相关文章:

SQL 2008+ NOLOCK 与 READPAST 报告准确性的注意事项

PHP MYSQL DELETE FROM WHERE AND 子句

java - 如何使用java删除文本文件中的一行或一行

javascript - 如何使用php在mysql数据库数据更改上自动发送短信

php - 我在日志中遇到错误,但是脚本可以满足我的要求

mysql - Cloudformation RDS 模板无法解析安全组 ID

mysql - 计算与其列相关的字段

mysql - 更改在mysql中具有外键约束的表主键

MySQL 显示来自 2 个表的行,表 2 中的最新数据

python - 根据列值的计数从 df 中删除整行