我有一個表中的數據,我可能有也可能沒有每天的記錄。我需要獲得最近6周的數據,而每週只需要最後一條記錄。如何獲得每週在mysql中的最後一條記錄
假設如果今天是24日,我需要從18日到24日以及11日到17日的最後一個記錄,直到6周。
此查詢給出了所有6周的記錄,但我需要在每週的最後一個記錄。
SELECT snap.created_at
FROM snapshots snap
WHERE snap.created_at > DATE_SUB(NOW(), INTERVAL 6 WEEK)
ORDER BY created_at DESC;
實施例:
CREATED_AT
2017年3月23日11時二十分三十秒
2017年3月23日10點40分21秒
2017-03- 21 09:58:42
2017-03-03 15:02:20
2017年3月2日14時41分49秒
2017年2月23日10點59分26秒
2017年2月22日15時59分53秒
2017年2月21日11 :08:57
2017年2月21日10時43分24秒
2017年2月18日1點37分33秒
2017年2月11日1時38分29秒
輸出:
(第一週)2017年2月11日 - 2017年2月17日= 2017年2月11日1點38分29秒
(第二週)2017年2月18日 - 2017年2月24日= 2017年2月23日10點59分26秒
(第三週)2017年2月25日 - 2017年3月3日= 2017年3月3日15時02分20秒
(第4周)2017-03-04 - 2017-03-10 = 2017-03-03 15:02:20(由於本週沒有記錄,需要顯示上週的最新記錄)
(第5周)2017-03-11 - 2017-03-17 = 2017-03-03 15: 02:20(由於本週沒有記錄,需要顯示上週的最新記錄)
(第6周)2017-03-18 - 2017-03-24 = 2017-03- 23 11:20:30
你的意思是subtrac從現在開始到6日,這將是第一週後退的開始?只是包括一個樣本數據在這裏和預期的結果 –
你在工作MYSQL或SQL? –
寫一個選擇查詢之間的條件,如選擇*從表where DATEDIFF(GETDATE()-6,'DAYS')和GETDATE()之間col_Date() –