簡體   English   中英

SQLite - 每天所有記錄的輸出計數,包括 0 條記錄的天數

[英]SQLite - Output count of all records per day including days with 0 records

我在 AWS 交易所上維護了一個 sqlite3 數據庫,該數據庫由 Python 腳本定期更新。 它跟蹤的一件事是任何團隊為給定主題生成新帖子時。 條目看起來像這樣:

ID 客戶 團隊 日期 行業 城市
895 極致行業 藍隊 2022-06-30 建造 斯普林菲爾德

我正在嘗試創建一個表格,向我顯示每天有多少construction條目。 現在,填充有數據的條目,但它們排除了沒有條目的日期。 例如,如果我只搜索

SELECT date, count(id) as num_records
from mytable
WHERE industry = "construction"
group by date
order by date asc

我將得到如下所示的結果:

日期 num_records
2022-04-01 3
2022-04-04 1

我怎樣才能使 sqlite 輸出像這樣:

日期 num_records
2022-04-02 3
2022-04-02 0
2022-04-03 0
2022-04-04 1

我正在嘗試從這些數據中生成一些圖表,並且需要能夠包含目標時間范圍內的所有日期。

編輯/更新:該表尚未包含每個日期; 它僅包括與條目相關的日期。 如果一天沒有團隊帖子工作, date列將從第 1 天(例如 2022-04-01)跳轉到第 3 天(2022-04-03)。

假設您的“ mytable ”表包含您需要的所有日期作為假設,您可以首先選擇所有日期,然后將LEFT JOIN應用於您自己的查詢,並將“ num_records ”字段的所有結果 NULL 值映射到“0 " 使用COALESCE函數。

WITH cte AS (
    SELECT date, 
           COUNT(id) AS num_records
    FROM mytable
    WHERE industry = "construction"
    GROUP BY date
    ORDER BY date
)
SELECT dates.date, 
       COALESCE(cte.num_records, 0) AS num_records
FROM      (SELECT date FROM mytable) dates
LEFT JOIN cte
       ON dates.date = cte.date

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM