当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。