mysql - 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
但通过这种方式,我获得了整个时期的最高价值。但我想获得该期间每一天的最高价值。我怎样才能做到这一点?
提前致谢
解决方案
使用GROUP BY
:
SELECT DATE(datetime), MAX(water)
FROM kn1
WHERE datetime > CURDATE() - INTERVAL 1 month)
GROUP BY DATE(datetime);
请注意,我修改了该WHERE
子句以简化它。大概,你不约会当前时间,只是日期,所以这使用当前日期。其次,不需要TIMESTAMP
,第三,我发现区间算术在没有附加功能的情况下更简单。
推荐阅读
- ios - 单元测试用例 - Swift 3.2
- r - 根据列内的固有值对数据框进行排序
- mdx - 按行值的 MDX 记录
- json - 如何使用具有定义架构的 Spark df.write.parquet 编写镶木地板文件。- pyspark
- python - 摆脱 Python 字符串前面的 'b'
- android - ANDROID:您如何处理旧 API 级别上不可用的 BroadcastIntent?
- google-apps-script - 使用代码展开或折叠谷歌表格中的分组列
- visual-studio-code - Flow js:如何显示详细类型的定义
- php - SOAP_SINGLE_ELEMENT_ARRAYS 的未定义常量错误
- powershell - -Recurse 标志在 PowerShell 中的作用是什么?