在 SQL 中,可以使用 CASE
语句和聚合函数(如 SUM
)来实现类似于 Excel 中 COUNTIF
功能的计算
SELECT
column1,
SUM(CASE WHEN column2 = 'condition' THEN 1 ELSE 0 END) AS countif_result
FROM
table_name
GROUP BY
column1;
这个查询将基于 column1
进行分组,并计算每个组中满足 column2 = 'condition'
条件的行数。CASE
语句会在满足条件时返回 1,否则返回 0,然后使用 SUM
函数对这些值求和,得到满足条件的总行数。
如果你想要计算满足多个条件的行数,可以使用嵌套的 CASE
语句或者将条件组合起来。例如:
-- 使用嵌套的 CASE 语句
SELECT
column1,
SUM(CASE WHEN column2 = 'condition1' THEN 1 ELSE 0 END) AS countif_result1,
SUM(CASE WHEN column2 = 'condition2' THEN 1 ELSE 0 END) AS countif_result2
FROM
table_name
GROUP BY
column1;
-- 将条件组合起来
SELECT
column1,
SUM(CASE WHEN column2 = 'condition1' OR column2 = 'condition2' THEN 1 ELSE 0 END) AS countif_result
FROM
table_name
GROUP BY
column1;
这些查询将分别计算满足不同条件的行数,并将结果分别存储在 countif_result1
和 countif_result2
列中。