高效率資料分析:組合多個SELECT語句
資料庫查詢通常需要組合來自多個來源的資料或套用多種轉換。 連接多個 SELECT
語句的輸出提供了一種強大的方法來操縱資料並獲得有價值的見解。
考慮一個任務資料庫,其中每筆記錄代表一個任務,包括截止日期 (PALT) 和任務的期限(自開始以來的天數)。如果任務的年齡超過其 PALT,則任務會延遲。 我們的目標是產生一個總表,顯示每個人的總任務數和逾期任務數。
這可以使用兩個單獨的 SELECT
語句來實現:
<code class="language-sql">SELECT ks, COUNT(*) AS '# Tasks' FROM Table GROUP BY ks;</code>
此查詢計算每個人的總任務(由 ks
標識)。
<code class="language-sql">SELECT ks, COUNT(*) AS '# Late' FROM Table WHERE Age > Palt GROUP BY ks;</code>
此查詢計算每個人遲到的任務數量。
為了組合這些,我們使用 LEFT JOIN
:
<code class="language-sql">SELECT t1.ks, t1.'# Tasks', COALESCE(t2.'# Late', 0) AS '# Late' FROM (SELECT ks, COUNT(*) AS '# Tasks' FROM Table GROUP BY ks) t1 LEFT JOIN (SELECT ks, COUNT(*) AS '# Late' FROM Table WHERE Age > Palt GROUP BY ks) t2 ON t1.ks = t2.ks;</code>
這會根據 ks
列連接結果。 COALESCE
處理人員沒有遲到任務的情況,將 NULL
替換為 0。
最終表顯示 ks
(人員 ID)、# Tasks
(任務總數)和 # Late
(遲到任務數,如果沒有則為 0)。這樣可以對各個工作負載和逾期任務的百分比進行徹底分析。
以上是如何組合多個SELECT語句來分析任務完成狀況和延遲狀況?的詳細內容。更多資訊請關注PHP中文網其他相關文章!