首页 > 编程笔记 > MySQL笔记 阅读:11

MySQL COUNT()函数的用法

MySQL 中的 COUNT() 函数统计数据表中包含的记录行的总数,或者根据查询结果返回列中包含的数据行数。

COUNT()函数的使用方法有两种:
【实例】查询 customers 表中总的行数,SQL 语句如下:
mysql> SELECT COUNT(*) AS cust_num FROM customers;
+----------+
| cust_num |
+----------+
|      4   |
+----------+
由查询结果可以看到,COUNT(*) 返回 customers 表中记录的总行数,不管其值是什么,返回的总数的名称都为 cust_num。

【实例】查询 customers 表中有电子邮箱的顾客的总数,SQL 语句如下:
mysql> SELECT COUNT(c_email) AS email_num  FROM customers;
+-----------+
| email_num |
+-----------+
|        3  |
+-----------+
由查询结果可以看到,表中 5 个 customer 只有 3 个有 email,customer 的 email 为空值 NULL 的记录没有被 COUNT() 函数计算。

提示:两个例子中不同的数值说明了两种方式在计算总数的时候对待 NULL 值的方式不同:指定列的值为空的行被 COUNT() 函数忽略;如果不指定列,而在 COUNT() 函数中使用星号“*”,则所有记录都不忽略。

前面介绍分组查询的时候,介绍了如何使用 COUNT() 函数与 GROUP BY 关键字一起来计算不同分组中的记录总数。

【实例】在 orderitems 表中,使用 COUNT() 函数统计不同订单号中订购的水果种类,SQL 语句如下:
mysql> SELECT o_num, COUNT(f_id) FROM orderitems GROUP BY o_num;
+-------+-------------+
| o_num | COUNT(f_id) |
+-------+-------------+
| 30001 |         4   |
| 30002 |         1   |
| 30003 |         1   |
| 30004 |         1   |
| 30005 |         4   |
+-------+-------------+
从查询结果可以看到,GROUP BY 关键字先按照订单号进行分组,然后计算每个分组中的总记录数。

相关文章