MySQL Count()函数
MySQL count()函数用于返回表达式的计数。它使我们可以计算表中符合指定条件的所有行或仅某些行。它是一种聚合函数,其返回类型为BIGINT。如果找不到匹配的行,该函数将返回0。
我们可以使用以下三种形式的count函数:
count(*)
count(expression)
count(distinct)
让我们详细讨论它们。
COUNT(*)函数: 此函数使用 SELECT语句返回结果集中的行数。结果集包含所有Non-Null,Null和重复行。
COUNT(expression)函数: 该函数返回结果集,但不包含Null行作为结果。
COUNT(distinct expression)函数: 此函数返回不包含NULL值作为表达式结果的不同行的计数。
语法
以下是COUNT()函数的语法:
SELECT COUNT (aggregate_expression)
FROM table_name
[WHERE conditions];
参数说明
aggregate_expression: 它指定将要计算其非空值的列或表达式。
table_name: 它指定要从中检索记录的表。 FROM子句中必须至少列出一个表。
以下条件: 是可选的。它指定了要选择的记录必须满足的条件。
MySQL count()函数示例
请考虑一个名为"employees"的表,其中包含
让我们了解count()函数在MySQL 。
Example1
执行以下使用COUNT(表达式)函数可计算表中可用的员工姓名总数:
mysql> SELECT COUNT(emp_name) FROM employees;
输出:
Example2
执行以下语句,该语句返回employee表中的所有行,并且 WHERE子句指定emp_age列中的值大于32的行:
mysql> SELECT COUNT(*) FROM employees WHERE emp_age>32;
输出:
Example3
此语句使用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 和具有子句和count()函数。执行以下语句,给出至少两个相同年龄的员工姓名,并根据计数结果对他们进行排序:
mysql> SELECT emp_name, emp_age, COUNT(*) FROM employees
GROUP BY emp_age
HAVING COUNT(*)>=2
ORDER BY COUNT(*);
此语句将给出如下输出: