Mysql
Mysql查詢以查找過去7天中每一天的最後一個條目
我有一個表,其中包含時間戳和每行的數字。每天 24 小時,每刻鐘每 15 分鐘記錄一次此數據,但有時確實會失去或延遲。我希望能夠提取過去 7 天結束時的數據,包括今天的最新日誌。我有兩個不同的查詢幾乎可以實現這一點,但並不完全:
SELECT * FROM WaterDepth WHERE (date >= DATE(NOW()) - INTERVAL 7 DAY) AND (HOUR(date)+MINUTE(date) = 68) ORDER BY date ASC LIMIT 7
這會在 23:45 擷取過去 7 天,但會錯過任何在 23:45 準確沒有條目且錯過今天的日子。
SELECT a1.* FROM WaterDepth a1 INNER JOIN (SELECT max(date) as max FROM WaterDepth GROUP BY date(date)) a2 ON a1.date = a2.max
這將擷取每天的最後一個條目,無論今天是什麼時間,包括今天,但我不確定如何將其限制為最後 7 天。所以我想我正在尋找兩者的混合體。
提前致謝
SELECT a1.* FROM WaterDepth a1 INNER JOIN ( SELECT MAX(`date`) as `max` FROM WaterDepth WHERE `date` >= CURRENT_DATE - INTERVAL 7 DAY -- or 6 day? 7 day gives 8 different dates... -- or today record not needed? if so add -- AND `date` < CURRENT_DATE GROUP BY DATE(`date`) ) a2 ON a1.`date` = a2.`max`