利用SQL COUNT()函數統計符合特定條件的行數
SQL中的COUNT()聚合函數通常統計列中所有非空值。但是,如果您只想統計滿足特定條件的行數呢?例如,只統計職位列中職位為「經理」的員工人數。
雖然WHERE子句為過濾行提供了直接的方法,但在需要同時統計經理和其他員工人數的情況下,WHERE子句可能不夠用。這時,COUNT()聚合函數中的條件式就派上用場了。
在COUNT()使用條件式
您可以利用COUNT()只統計非空值這一特性,而不是使用WHERE子句。透過使用條件式,您可以建立一個case語句,根據條件評估Position列並指派特定值。
範例1:使用Case和Count()
<code class="language-sql">select count(case Position when 'Manager' then 1 else null end) from ...</code>
在這個查詢中,case語句評估Position欄位是否等於'Manager'。若為真,則賦值為1;否則,賦值為null。然後,COUNT()聚合函數對case表達式中的所有非空值求和,從而得到經理行數。
範例2:使用Case和Sum()
或者,您可以使用Sum()聚合函數和類似的條件表達式:
<code class="language-sql">select sum(case Position when 'Manager' then 1 else 0 end) from ...</code>
這種方法也能得到經理行數,因為Sum()聚合函數對case表達式中指定的值求和,並有效地統計非零值(即Position等於'Manager'的行)。
以上是如何使用 COUNT() 計算 SQL 中滿足特定條件的行數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!