當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


MySQL Count()用法及代碼示例


MySQL count() 函數用於返回表達式的計數。它允許我們計算表中與指定條件匹配的所有行或僅部分行。它是一種返回類型為 BIGINT 的聚合函數。如果沒有找到任何匹配的行,則此函數返回 0。

我們可以以三種形式使用count函數,分別解釋如下:

  • 計數 (*)
  • 計數(表達式)
  • 計數(不同)

讓我們詳細討論每一個。

COUNT(*) 函數:該函數使用 SELECT 語句返回結果集中的行數。結果集包含所有非空、空和重複行。

COUNT(expression) 函數:該函數返回不包含作為表達式結果的 Null 行的結果集。

COUNT(distinct expression) 函數:此函數返回不包含作為表達式結果的 NULL 值的不同行的計數。

用法

以下是 COUNT() 函數的語法:

SELECT COUNT (aggregate_expression)  
FROM table_name  
[WHERE conditions];

參數說明

aggregate_expression:它指定將計算其非空值的列或表達式。

table_name:它指定要從中檢索記錄的表。 FROM 子句中必須至少列出一個表。

WHERE 條件:可選。它指定要選擇的記錄必須滿足的條件。

MySQL count() 函數示例

考慮一個名為 "employees" 的表,其中包含以下數據。

mysql count()

讓我們了解 count() 函數在 MySQL 中是如何工作的。

示例 1

執行以下查詢,該查詢使用 COUNT(expression) 函數來計算表中可用的員工姓名總數:

mysql> SELECT COUNT(emp_name) FROM employees;

輸出:

mysql count()

例2

執行以下語句返回員工表中的所有行,WHERE 子句指定列 emp_age 中值大於 32 的行:

mysql> SELECT COUNT(*) FROM employees WHERE emp_age>32;

輸出:

mysql count()

例3

此語句使用 COUNT(distinct expression) 函數計算列 emp_age 中的非空行和不同行:

mysql> SELECT COUNT(DISTINCT emp_age) FROM employees;

輸出:

mysql count()

MySQL Count() 函數與 GROUP BY 子句

我們還可以將 count() 函數與 GROUP BY 子句一起使用,該子句返回每個組中元素的計數。例如,以下語句返回每個城市的員工人數:

mysql> SELECT emp_name, city, COUNT(*) FROM employees GROUP BY city;

執行成功後,我們會得到如下結果:

mysql count()

帶有 HAVING 和 ORDER BY 子句的 MySQL Count() 函數

讓我們看看另一個將 ORDER BY 和 Has 子句與 count() 函數一起使用的子句。執行以下語句,給出至少有兩個年齡相同的員工姓名,並根據計數結果對其進行排序:

mysql> SELECT emp_name, emp_age, COUNT(*) FROM employees 
GROUP BY emp_age 
HAVING COUNT(*)>=2 
ORDER BY COUNT(*);

該語句將給出如下輸出:

mysql count()



相關用法


注:本文由純淨天空篩選整理自 MySQL Count() Function。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。