如何在MySQL 查詢中填入資料間隙
這個問題探討了MySQL 中的一個常見問題,即在查詢之間查詢時可能會出現資料間隙具體日期。使用者的現有查詢檢索基於日期的指標,但不包含缺失日期的資料。
使用虛擬行源填充資料間隙
填充資料間隙,解決方案涉及建立一個名為「dates」的輔助表。該表包含從所需的開始到結束範圍的所有日期。然後,在日期表和訊息表之間執行 LEFT JOIN。
這是修改後的查詢:
SELECT d.dt AS date, COUNT(*) AS total, SUM(attitude = 'positive') AS positive, SUM(attitude = 'neutral') AS neutral, SUM(attitude = 'negative') AS negative FROM dates d LEFT JOIN messages m ON m.posted_at >= d.dt AND m.posted_at < d.dt + INTERVAL 1 DAYS AND spam = 0 AND duplicate = 0 AND ignore = 0 GROUP BY d.dt ORDER BY d.dt
解釋:
使用虛擬行來源的替代方法
MySQL 的獨特之處在於它缺乏用於生成日期序列的內建函數。但是,在其他資料庫系統中也有一些替代方法:
以上是如何處理 MySQL 查詢中的缺失日期?的詳細內容。更多資訊請關注PHP中文網其他相關文章!