按列進行條件計數
問題描述:
假設有一個表格,包含欄位 jobId
、jobName
和 Priority
,其中 Priority
是 1 到 5 之間的整數。目標是產生一個查詢,統計具有特定 Priority
值的行數,並將結果以適合建立圖表報告的格式顯示。
解:
為了達到預期的結果,可以使用條件式和聚合函數的組合:
<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
值,如果條件為真,則賦值為 1,否則賦值為 0。然後,這些值針對每個 jobID
和 JobName
組合進行求和。
GROUP BY
子句確保結果按 jobID
和 JobName
的唯一值分組,從而提供每個作業計數的細分。
透過這種方式格式化結果,您可以輕鬆地將它們嵌入到圖表報告中,以可視化不同作業的 Priority
值分佈。
以上是如何計算工作優先順序並產生圖表就緒資料?的詳細內容。更多資訊請關注PHP中文網其他相關文章!