首頁 >資料庫 >mysql教程 >如何使用條件 SQL 查詢計算作業優先權?

如何使用條件 SQL 查詢計算作業優先權?

Mary-Kate Olsen
Mary-Kate Olsen原創
2025-01-10 10:02:44300瀏覽

How to Count Job Priorities Using Conditional SQL Queries?

利用條件計數查詢進行優先分析

在資料分析中,經常需要進行條件計數來從分類資料中提取資訊。考慮一個包含欄位「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中文網其他相關文章!

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