利用條件計數查詢進行優先分析
在資料分析中,經常需要進行條件計數來從分類資料中提取資訊。考慮一個包含欄位「jobId」、「jobName」和「Priority」的表,其中「Priority」的值範圍為1到5。我們需要建立一個查詢,計算每個優先權等級的行數。
使用CASE語句的查詢:
以下查詢使用CASE語句為每個優先權等級執行條件計數:
<code class="language-sql">SELECT jobID, jobName, SUM(CASE WHEN Priority = 1 THEN 1 ELSE 0 END) AS Priority1, SUM(CASE WHEN Priority = 2 THEN 1 ELSE 0 END) AS Priority2, SUM(CASE WHEN Priority = 3 THEN 1 ELSE 0 END) AS Priority3, SUM(CASE WHEN Priority = 4 THEN 1 ELSE 0 END) AS Priority4, SUM(CASE WHEN Priority = 5 THEN 1 ELSE 0 END) AS Priority5 FROM Jobs GROUP BY jobID, jobName</code>
對於每一行,CASE語句檢查「Priority」值是否與指定數字相符(例如,Priority1為1)。如果為真,則表達式傳回1;如果為假,則傳回0。然後,SUM函數將這些值針對每個群組(由「jobId」和「jobName」決定)進行聚合。
去掉jobID和jobName:
如果您不需要在結果中包含“jobId”和“jobName”,您可以透過修改SELECT和GROUP BY子句來刪除它們:
<code class="language-sql">SELECT SUM(CASE WHEN Priority = 1 THEN 1 ELSE 0 END) AS Priority1, SUM(CASE WHEN Priority = 2 THEN 1 ELSE 0 END) AS Priority2, SUM(CASE WHEN Priority = 3 THEN 1 ELSE 0 END) AS Priority3, SUM(CASE WHEN Priority = 4 THEN 1 ELSE 0 END) AS Priority4, SUM(CASE WHEN Priority = 5 THEN 1 ELSE 0 END) AS Priority5 FROM Jobs</code>
這個簡化的查詢將只傳回每個優先權等級的條件計數。
以上是如何使用條件 SQL 查詢計算作業優先權?的詳細內容。更多資訊請關注PHP中文網其他相關文章!