首頁 > 資料庫 > mysql教程 > 如何在SQL中以優先權有效率地計算條件行數?

如何在SQL中以優先權有效率地計算條件行數?

Mary-Kate Olsen
發布: 2025-01-10 07:39:45
原創
574 人瀏覽過

How to Efficiently Count Conditional Rows by Priority in SQL?

SQL高效率統計依優先排序的條件行

假設您有一個儲存作業資訊的表,其中包含一個指示優先順序的資料列(1到5之間的整數)。為了產生一個包含按優先順序顯示作業計數的圖表報表,您需要建立五個額外的字段,每個字段都計算具有特定優先值的行的數量。

解決方案在於在SELECT查詢中使用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>
登入後複製

此查詢實質上使用SUM()函數計算每個優先權等級的行數。但是,它也使用CASE語句排除了不符合特定優先條件的行。結果是一個表,其中包含表示條件計數的附加欄位。

要只包含作業計數,而不包含結果中的jobID和JobName,只需從SELECT語句中刪除這些欄位並刪除GROUP BY子句即可。

以上是如何在SQL中以優先權有效率地計算條件行數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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