SUM 配合 CASE WHEN 实现条件聚合
SQL 中的 SUM 配合 CASE WHEN 就可以添加条件,例如:
SUM(CASE WHEN a > 0 THEN a ELSE 0 END)Code language: PHP (php)
将 a 列所有大于 0 的值相加。
SUM(CASE WHEN rq > '2015-1-1' AND rq < '2015-2-1' THEN a ELSE 0 END)Code language: PHP (php)
将 rq 为 1 月份的所有 a 列的值相加。
比如下面统计学生的年龄,如果是女同学就年龄减十岁,如果是男同学就年龄加十岁:
-- 单纯使用 sum 来统计
SELECT SUM(s.stu_age) FROM [Test].[dbo].[student] sCode language: CSS (css)
-- 如果是女同学就年龄减十岁,如果是男同学就年龄加十岁
-- 使用 case when then else end
-- sum 里面支持使用 case when
SELECT SUM(CASE s.stu_gender WHEN '女' THEN s.stu_age - 10 ELSE s.stu_age + 10 END)
FROM [Test].[dbo].[student] sCode language: PHP (php)
Previous: 删除主键约束