MySQL Count()函数

MySQL Count()函数

MySQL count()函数用于返回表达式的计数。它允许我们计数符合指定条件的表中的所有行或仅计数一些行。它是一种聚合函数,其返回类型为BIGINT。如果没有找到任何匹配的行,该函数将返回0。

我们可以使用三种形式的count函数,下面将对其进行解释:

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

让我们详细讨论每个形式。

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

COUNT(expression)函数: 该函数返回不包含空行的结果集,该结果是表达式的结果。

COUNT(distinct expression)函数: 该函数返回不包含NULL值的唯一行的计数,作为表达式的结果。

语法

COUNT()函数的语法如下:

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

参数解释

aggregate_expression: 指定将计算其NON-NULL值的列或表达式。

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

WHERE条件: 可选。指定必须满足的条件以选择记录。

MySQL count()函数示例

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

MySQL Count()函数

让我们了解一下count()函数在MySQL中是如何工作的。

示例1

执行以下查询,使用COUNT(expression)函数计算表中可用的员工名字的总数:

mysql> SELECT COUNT(emp_name) FROM employees;  

输出:

MySQL Count()函数

示例2

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

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

输出:

MySQL Count()函数

示例3

该语句使用COUNT(distinct 表达式)函数来计算列emp_age中非空且不重复的行数:

mysql> SELECT COUNT(DISTINCT emp_age) FROM employees;

输出:

MySQL Count()函数

MySQL Count()函数与GROUP BY子句

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

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

执行成功后,我们将得到以下结果:

MySQL Count()函数

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

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

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

这个陈述将会输出如下结果:

MySQL Count()函数

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程