首頁 >資料庫 >mysql教程 >如何計算 COUNT() 函數中符合特定條件的行數?

如何計算 COUNT() 函數中符合特定條件的行數?

Linda Hamilton
Linda Hamilton原創
2025-01-11 06:40:42638瀏覽

How Can I Count Rows Meeting Specific Conditions Within a COUNT() Function?

COUNT() 函數內的條件計數

您可以將條件直接合併到 COUNT() 函數中。 當您需要在單一 SQL 查詢中計算滿足不同條件的行數時,這特別有用,從而避免了多個查詢或子查詢的需要。 例如,計算單一 SELECT 語句中「經理」和「員工」的數量。

關鍵是在 CASE 函數中使用 COUNT() 表達式。 COUNT() 只計算非 NULL 值。 因此:

<code class="language-sql">SELECT COUNT(CASE WHEN Position = 'Manager' THEN 1 ELSE NULL END) AS ManagerCount
FROM ...</code>

這只計算 Position 為「Manager」的行。 ELSE NULL 確保不符合條件的行不被計算在內。

或者,您可以使用SUM()

<code class="language-sql">SELECT SUM(CASE WHEN Position = 'Manager' THEN 1 ELSE 0 END) AS ManagerCount
FROM ...</code>

這達到了相同的結果; SUM() 為每個「經理」添加 1,為所有其他「經理」添加 0。 這種方法在某些資料庫系統中可能稍微更有效。 這兩種方法都不需要單獨的 WHERE 子句,因此非常適合同時計算多個類別。

以上是如何計算 COUNT() 函數中符合特定條件的行數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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