基本语法
```sql
COUNT([DISTINCT | ALL] expression)
```
- expression:可以是列名、星号()或者任何有效的SQL表达式。
- DISTINCT:如果指定了 DISTINCT,则只计算唯一值的数量。
- ALL:默认情况下,COUNT 函数会自动忽略 NULL 值,并且 ALL 是默认选项。
使用示例
1. 统计总行数
假设有一个名为 `employees` 的表,想要知道该表中有多少条记录,可以直接使用 `COUNT()`:
```sql
SELECT COUNT() AS total_employees FROM employees;
```
这条语句将返回 `employees` 表中的所有行数。
2. 统计某一列的非空值数量
如果只想统计某一列中非空值的数量,可以指定列名作为参数:
```sql
SELECT COUNT(name) AS non_empty_names FROM employees;
```
这里,`COUNT(name)` 将统计 `name` 列中不为 NULL 的值的数量。
3. 统计唯一值的数量
当需要统计某一列中不同值的数量时,可以使用 `DISTINCT` 关键字:
```sql
SELECT COUNT(DISTINCT department) AS unique_departments FROM employees;
```
这条语句将返回 `department` 列中不同的部门名称的数量。
4. 条件统计
还可以结合 WHERE 子句来对满足特定条件的数据进行统计:
```sql
SELECT COUNT() AS active_employees FROM employees WHERE status = 'active';
```
此查询将统计 `status` 列值为 `'active'` 的员工数量。
注意事项
- `COUNT` 函数会自动忽略 NULL 值。这意味着如果你尝试统计某一列的值,而该列包含 NULL 值,这些 NULL 值不会被计入总数。
- 如果使用 `COUNT()`,则无论列中是否存在 NULL 值,都会统计所有的行。
- 在处理大数据集时,合理使用索引和优化查询语句可以提高 `COUNT` 操作的效率。
通过以上介绍,我们可以看到 `COUNT` 函数在 SQL 查询中的灵活性和重要性。无论是简单的行数统计还是复杂的条件过滤,`COUNT` 都能为我们提供必要的信息支持。希望这些示例能够帮助你更好地理解和应用这一强大的工具。


