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