主要用了 group by 對 time 字段分組查詢
1、查詢某個月內每天的最新數據
SELECT * FROM pm p
WHERE p.id= 961
AND p.time IN(
SELECT MAX(time) FROM pm
WHERE id= 961
AND time BETWEEN '2021-03-01 00:00:00' AND '2021-03-30 23:59:59'
GROUP BY DATE_FORMAT(time,'%Y-%m-%d')
)
GROUP BY time #去除重復時間的記錄
ORDER BY time DESC;
子查詢里用分組查詢每天最大的時間點,然后主句通過時間去查詢記錄
2、要查詢一段時間內每天的平均值
SELECT DATE_FORMAT(time,'%Y-%m-%d') time_, AVG(value) FROM table_name
WHERE id= 34
AND time BETWEEN '2020-07-01 00:00:00' AND '2020-07-31 23:59:59'
GROUP BY time_;