📜  MySQL count()

📅  最后修改于: 2020-11-18 03:29:02             🧑  作者: Mango

MySQL Count()函数

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

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

  • 数(*)
  • 计数(表达式)
  • 计数(不同)

让我们详细讨论每个。

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

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

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

句法

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

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

参数说明

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

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

条件:它是可选的。它指定了选择记录必须满足的条件。

MySQL count()函数示例

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

让我们了解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;

输出:

MySQL Count()函数与GROUP BY子句

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

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

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

具有HAVING和ORDER BY子句的MySQL Count()函数

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

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

该语句将给出如下输出: