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

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

Mary-Kate Olsen
發布: 2025-01-10 10:02:44
原創
261 人瀏覽過

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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板