MySQL count()函数

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

我们可以通过三种形式使用count函数,下面分别解释:

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

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

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

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

一、MySQL count()函数 语法

以下是 COUNT() 函数的语法:

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

参数说明

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

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

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

二、MySQL count()函数 示例

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

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

示例 1

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

mysql> SELECT COUNT(emp_name) FROM employees;    

输出结果为:

示例 2

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

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

输出结果为:

示例 3

此语句使用 COUNT(distinct expression) 函数计算列 emp_age 中的 Non-Null 和不同的行:

mysql> SELECT COUNT(DISTINCT emp_age) FROM employees;  

输出结果为:

三、带有 GROUP BY 子句的 MySQL Count() 函数

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

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

执行成功后,我们会得到如下结果:

四、带有 HAVING 和 ORDER BY 子句的 MySQL Count() 函数

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

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

该语句将给出如下输出:

热门文章

优秀文章