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" 的表,其中包含以下數據。
讓我們了解 count() 函數在 MySQL 中是如何工作的。
示例 1
執行以下查詢,該查詢使用 COUNT(expression) 函數來計算表中可用的員工姓名總數:
mysql> SELECT COUNT(emp_name) FROM employees;
輸出:
例2
執行以下語句返回員工表中的所有行,WHERE 子句指定列 emp_age 中值大於 32 的行:
mysql> SELECT COUNT(*) FROM employees WHERE emp_age>32;
輸出:
例3
此語句使用 COUNT(distinct expression) 函數計算列 emp_age 中的非空行和不同行:
mysql> SELECT COUNT(DISTINCT emp_age) FROM employees;
輸出:
MySQL Count() 函數與 GROUP BY 子句
我們還可以將 count() 函數與 GROUP BY 子句一起使用,該子句返回每個組中元素的計數。例如,以下語句返回每個城市的員工人數:
mysql> SELECT emp_name, city, COUNT(*) FROM employees GROUP BY city;
執行成功後,我們會得到如下結果:
帶有 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 Convert()用法及代碼示例
- MySQL CHARACTER_LENGTH()用法及代碼示例
- MySQL CURTIME()用法及代碼示例
- MySQL CURRENT_TIME()用法及代碼示例
- MySQL CONCAT()用法及代碼示例
- MySQL CEILING()用法及代碼示例
- MySQL CONNECTION_ID( )用法及代碼示例
- MySQL CHAR_LENGTH()用法及代碼示例
- MySQL COUNT()用法及代碼示例
- MySQL CONVERT_TZ()用法及代碼示例
- MySQL CONV( )用法及代碼示例
- MySQL COT()用法及代碼示例
- MySQL CONVERT( )用法及代碼示例
- MySQL COALESCE( )用法及代碼示例
- MySQL CAST( )用法及代碼示例
- MySQL CURDATE()用法及代碼示例
- MySQL COMPRESS( )用法及代碼示例
- MySQL CASE()用法及代碼示例
- MySQL CURRENT_TIMESTAMP()用法及代碼示例
- MySQL CAST()用法及代碼示例
注:本文由純淨天空篩選整理自 MySQL Count() Function。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。