在SQL中,`COUNT()`函数是一个聚合函数,主要用于计算表中行的数量。它可以有不同的使用方式,根据其参数的不同,功能也会有所不同。以下是`COUNT()`函数的一些主要功能:
1. 计算总行数:当`COUNT()`函数以`*`为参数时,它会返回表中的总行数,包括NULL值和重复值。
```sql
SELECT COUNT(*) FROM table_name;
```
2. 计算特定列的非NULL值数量:当`COUNT()`指定某个列名作为参数时,它将返回该列非NULL值的总数,忽略任何NULL值。
```sql
SELECT COUNT(column_name) FROM table_name;
```
3. 计算唯一值数量:结合`DISTINCT`关键字,`COUNT()`可以用来计算指定列中不同的非NULL值的数量。
```sql
SELECT COUNT(DISTINCT column_name) FROM table_name;
```
4. 条件计数:通过结合`CASE`语句或者`WHERE`子句,`COUNT()`可以用来计算满足特定条件的行数。
```sql
SELECT COUNT(*) FROM table_name WHERE condition;
```
或者使用`CASE`语句:
```sql
SELECT COUNT(CASE WHEN condition THEN 1 ELSE NULL END) FROM table_name;
```
5. 分组统计:与`GROUP BY`语句搭配使用时,`COUNT()`可以用来计算每个分组内的行数。
```sql
SELECT column_name, COUNT(*) FROM table_name GROUP BY column_name;
```
6. 与`HAVING`子句结合使用:在分组统计的基础上,可以进一步使用`HAVING`子句对分组后的结果进行过滤,比如筛选出数量超过某个值的分组。
```sql
SELECT column_name, COUNT(*)
FROM table_name
GROUP BY column_name
HAVING COUNT(*) > some_value;
```
综上所述,`COUNT()`函数在SQL中是一个非常强大的工具,可用于数据统计、数据分析等多种情况。