MySQL - count()函数

MySQL - count()函数 首页 / MySQL入门教程 / 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     -  它指定要计算其NON-NULL值的列或表达式。

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

where conditions              -  这是可选的。它指定了选择记录必须满足的条件。

MySQL count()函数示例

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

mysql count()

让无涯教程了解 MySQL 中count()函数的工作方式。

示例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 expression)函数对emp_age列中的Non-Null和不同的行进行计数:

mysql> SELECT COUNT(DISTINCT emp_age) FROM employees;

输出:

mysql count()

Count()与GROUP BY子句

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

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

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

mysql count()

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()

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

趣谈网络协议 -〔刘超〕

全栈工程师修炼指南 -〔熊燚(四火)〕

DevOps实战笔记 -〔石雪峰〕

接口测试入门课 -〔陈磊〕

陈天 · Rust 编程第一课 -〔陈天〕

业务开发算法50讲 -〔黄清昊〕

中间件核心技术与实战 -〔丁威〕

云计算的必修小课 -〔吕蕴偲〕

结构学习力 -〔李忠秋〕

好记忆不如烂笔头。留下您的足迹吧 :)