首頁 >資料庫 >mysql教程 >如何計算 SQL 中的條件列值:基於優先權的範例?

如何計算 SQL 中的條件列值:基於優先權的範例?

Mary-Kate Olsen
Mary-Kate Olsen原創
2025-01-10 06:56:43373瀏覽

How to Count Conditional Column Values in SQL:  A Priority-Based Example?

SQL條件列計數

考慮一個名為「Jobs」的表,其架構如下:

<code>jobId, jobName, Priority</code>

其中「Priority」是1到5之間的整數。

問題陳述:

您需要建立一個查詢,計算「Jobs」表中每個優先權(1到5)的行數。查詢應分別傳回名為「Priority1」到「Priority5」的列,代表這些計數。

解:

為此,請使用以下SQL語句:

<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」欄位。
  • 如果「Priority」等於指定值(1、2、3、4或5),則它對計數貢獻1。
  • 如果「Priority」不等於指定值,則它貢獻0。
  • SUM函數會聚合每個優先權的這些計數。
  • GROUP BY子句按「jobId」和「jobName」分組結果(假設您希望在結果中包含這些欄位)。

注意:如果您希望排除“jobId”和“jobName”,只需將它們從SELECT和GROUP BY子句中刪除即可。

以上是如何計算 SQL 中的條件列值:基於優先權的範例?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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