首頁 > 資料庫 > mysql教程 > 如何使用輔助表填入 MySQL 查詢中的日期間隙?

如何使用輔助表填入 MySQL 查詢中的日期間隙?

Patricia Arquette
發布: 2024-12-26 14:01:11
原創
891 人瀏覽過

How Can I Fill Date Gaps in MySQL Queries Using a Helper Table?

使用輔助表填充 MySQL 中的日期間隙

從資料集中擷取準確的資料通常需要解決缺失的日期範圍。在 MySQL 中,可以透過使用輔助表來填入日期間隙。

假設您有一個查詢,可以對給定範圍內的特定日期的資料進行計數和匯總。然而,有些日期可能沒有任何記錄,導致結果有差距。若要解決此問題,您可以使用包含指定範圍內的所有日期的輔助表。

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
登入後複製

在此查詢中:

  • 輔助表日期包含來自所需範圍的開始到結束。
  • LEFT JOIN 將日期表中的行與訊息中的符合行組合起來表。
  • 對於日期表中的每個日期,查詢都會對訊息表中的對應行進行計數,即使沒有符合項目也是如此。
  • 結果是完整的資料集,其中 0 值messages 表中沒有任何符合記錄的日期。

這種方法允許您填充日期間隙並獲取連續的一系列數據,從而提供更全面和準確的表示您的結果。

以上是如何使用輔助表填入 MySQL 查詢中的日期間隙?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板