首页 > 解决方案 > MySQL MAX 每天

问题描述

我有下表的测量值:

           datetime | water |  air | conductivity | ...
2021-07-17 16:44:39 |  13,9 | 18,6 |          357 | ...

我目前正在查询一段时间的值:

SELECT * FROM kn1 WHERE datetime > TIMESTAMP(DATE_SUB(NOW(), INTERVAL 1 month)) ORDER BY datetime

现在我不想获得每一个价值,只是每天的最高价值。一般来说,我可以通过查询最高值

SELECT MAX(water) FROM kn1 WHERE datetime > TIMESTAMP(DATE_SUB(NOW(), INTERVAL 1 month)) ORDER BY datetime

但通过这种方式,我获得了整个时期的最高价值。但我想获得该期间每一天的最高价值。我怎样才能做到这一点?

提前致谢

标签: mysql

解决方案


使用GROUP BY

SELECT DATE(datetime), MAX(water)
FROM kn1
WHERE datetime > CURDATE() - INTERVAL 1 month)
GROUP BY DATE(datetime);

请注意,我修改了该WHERE子句以简化它。大概,你不约会当前时间,只是日期,所以这使用当前日期。其次,不需要TIMESTAMP,第三,我发现区间算术在没有附加功能的情况下更简单。


推荐阅读