# 1. 介绍count()函数
MySQL中的count()函数是一种聚合函数,用于计算指定列的行数。count()函数基于所提供的条件,返回您提供的列的任何匹配的行数。常用于计算某表中行数或去重后的行数。在使用时经常与group by语句搭配使用,以统计分组后的行数。
# 2. 基本用法
count()函数的基本用法如下所示:
```
SELECT count(column_name) FROM table_name WHERE condition;
```
其中,column_name 指定需要计算行数的列名。另外,WHERE 子句是可选的,如果没有指定 WHERE 子句,将会计算列中所有行的数量。在如下的示例中,我们从 employees 表中计算出“gender”列中性别为“M”的行数:
```sql
SELECT count(gender) FROM employees WHERE gender='M';
```
结果如下所示:
```
+-------------+
| count(gender) |
+-------------+
| 179973 |
+-------------+
1 row in set (0.39 sec)
```
上述示例中的结果告诉我们,employees表中性别为“M”的行数为179973行。
# 3. 配合group by使用
count()函数在实际应用中,经常和group by子句进行联用。group by子句的作用是对数据库表中的数据进行分类,将数据集中到具有相同属性的列中。可以指定一个或多个列作为分组条件。下面的示例中,我们从“employees”表中,根据“gender”分组并使用count()函数统计每个分组下的行数:
```sql
SELECT gender, count(*) FROM employees GROUP BY gender;
```
上述示例中的结果如下所示:
```
+------+----------+
|gender|count(*) |
+------+----------+
|F |120051 |
|M |179973 |
+------+----------+
2 rows in set (2.48 sec)
```
上述示例中的结果告诉我们,“employees”表中,按性别分组的结果为:女性120051行,男性179973行。
# 4. 对于NULL值处理
注意到count()函数不会统计NULL值。因此,如果您在SQL中想要对包含NULL值的列进行计数,将需要使用count()函数的特殊形式:
```sql
SELECT COUNT(*) FROM employees WHERE gender IS NULL;
```
上述示例中的结果如下:
```
+----------+
| COUNT(*) |
+----------+
| 24|
+----------+
1 row in set (0.03 sec)
```
# 5. 小结
count()函数是MySQL中最常用的聚合函数之一,可以用来统计某个表中符合条件的行数。通过group by语句配合,可以对统计结果进行分组,以进一步分析和统计数据。但需要注意的是,count()函数不会统计NULL值。