首頁 >資料庫 >mysql教程 >如何組合多個SQL SELECT語句來統計任務和延遲任務?

如何組合多個SQL SELECT語句來統計任務和延遲任務?

Mary-Kate Olsen
Mary-Kate Olsen原創
2025-01-08 22:29:44161瀏覽

How to Combine Multiple SQL SELECT Statements to Count Tasks and Late Tasks?

組合多個 SQL SELECT 語句:一個實際範例

本指南示範如何有效地將多個 SQL SELECT 語句的結果組合到單一綜合表中。 我們將使用任務管理資料庫作為範例。 每個任務記錄都包含截止日期、截止日期前的天數 (PALT) 和期限(自創建以來的天數)等詳細資訊。 目標是產生一份報告,顯示每個人的總任務數和過期任務數。

計算總任務和延遲任務的單獨查詢可能如下所示:

<code class="language-sql">SELECT ks, COUNT(*) AS "Total Tasks" FROM Table GROUP BY ks;</code>
<code class="language-sql">SELECT ks, COUNT(*) AS "Overdue Tasks" FROM Table WHERE Age > Palt GROUP BY ks;</code>

為了合併這些結果,我們使用 LEFT JOIN。 這確保了任務總數中的所有人員都被包括在內,即使他們沒有逾期的任務。

<code class="language-sql">SELECT t1.ks, t1."Total Tasks", COALESCE(t2."Overdue Tasks", 0) AS "Overdue Tasks"
FROM 
    (SELECT ks, COUNT(*) AS "Total Tasks" FROM Table GROUP BY ks) t1
LEFT JOIN
    (SELECT ks, COUNT(*) AS "Overdue Tasks" FROM Table WHERE Age > Palt GROUP BY ks) t2
ON t1.ks = t2.ks;</code>

COALESCE 函數處理人員沒有過期任務的情況(從 NULL 產生 LEFT JOIN),為了清楚起見,將 NULL 替換為 0。 最終表格將顯示ks(人員ID)、「任務總數」和「逾期任務」。 LEFT JOIN 確保所有個人都被列出,無論他們是否有逾期的任務。

以上是如何組合多個SQL SELECT語句來統計任務和延遲任務?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn