MySQL Count() 函数

17 Mar 2025 | 阅读 2 分钟

MySQL count() 函数用于返回表达式的计数。它允许我们计算表中所有行或仅匹配特定条件的某些行。它是一种聚合函数,其返回类型为 BIGINT。如果找不到匹配的行,则此函数返回 0。

我们可以使用三种形式的 count 函数,如下所述

  • Count (*)
  • Count (expression)
  • Count (distinct)

我们来详细讨论一下。

COUNT(*) 函数:此函数使用 SELECT 语句返回结果集中的行数。结果集包含所有非 NULL、NULL 和重复行。

COUNT(expression) 函数:此函数返回不包含 NULL 行的结果集,作为表达式的结果。

COUNT(distinct expression) 函数:此函数返回不包含 NULL 值的结果集中的不重复行数,作为表达式的结果。

语法

以下是 COUNT() 函数的语法

参数解释

aggregate_expression:它指定将对其非 NULL 值进行计数的列或表达式。

table_name:它指定要从中检索记录的表。在 FROM 子句中必须至少列出一个表。

WHERE conditions: 这是可选的。它指定必须满足的条件才能选择记录。

MySQL count() 函数示例

考虑一个名为“employees”的表,其中包含以下数据。

mysql count()

让我们了解 count() 函数在 MySQL 中的工作原理。

示例 1

执行以下查询,该查询使用 COUNT(expression) 函数计算表中所有员工姓名的总数。

输出

mysql count()

示例 2

执行以下语句,该语句返回 employee 表中的所有行,并且 WHERE 子句指定 emp_age 列中的值大于 32 的行。

输出

mysql count()

Example3

此语句使用 COUNT(distinct expression) 函数,该函数计算 emp_age 列中的非 NULL 和不重复行。

输出

mysql count()

MySQL Count() 函数与 GROUP BY 子句

我们还可以将 count() 函数与 GROUP BY 子句一起使用,该子句返回每个组中元素的计数。例如,以下语句返回每个城市中的员工数量。

成功执行后,我们将获得如下结果

mysql count()

MySQL Count() 函数与 HAVING 和 ORDER BY 子句

让我们看看另一个子句,该子句将 ORDER BYHaving 子句与 count() 函数一起使用。执行以下语句,该语句给出至少有两个相同年龄的员工姓名,并根据计数结果进行排序。

此语句将给出以下输出

mysql count()
下一话题MySQL sum()