在 SQL 查询中,COUNT() 函数用于计算某列中非空值的个数。有时,我们需要在计算计数时添加额外的条件,以过滤出只满足特定条件的行。以下是如何在 COUNT() 中添加条件:
使用 WHERE 子句
要使用 WHERE 子句在 COUNT() 中添加条件,请按照以下语法:
sql
SELECT COUNT(*)
FROM table_name
WHERE condition;
例如,要计算列 "age" 中大于 18 的行的数量,可以使用以下查询:
sql
SELECT COUNT(*)
FROM users
WHERE age > 18;
使用 HAVING 子句
HAVING 子句可用于在使用聚合函数(如 COUNT())对数据进行分组后添加条件。它与 WHERE 子句类似,但只适用于组后的结果。语法如下:
sql
SELECT column_name, COUNT(*) AS count
FROM table_name
GROUP BY column_name
HAVING condition;
例如,要计算每个城市中年龄大于 18 的人的数量,可以使用以下查询:
sql
SELECT city, COUNT(*) AS count
FROM users
GROUP BY city
HAVING COUNT(*) > 18;
使用 CASE 语句
CASE 语句可用于在 COUNT() 中创建动态条件。它允许您根据列中特定值的条件执行不同的操作。语法如下:
sql
SELECT COUNT(CASE WHEN condition THEN 1 ELSE 0 END)
FROM table_name;
例如,要计算列 "status" 为 "active" 的行的数量,可以使用以下查询:
sql
SELECT COUNT(CASE WHEN status = 'active' THEN 1 ELSE 0 END)
FROM users;
在 COUNT() 函数中添加条件是一个强大的功能,可以让我们更加灵活地查询数据。使用 WHERE、HAVING 和 CASE 语句,我们可以轻松过滤出满足特定条件的行,并计算其计数。这对于分析数据、生成报告和其他需要精确计数的任务非常有用。