[英]SQL, sum inside of case condition
我正在尝试学习 sql 查询,我想解决以下问题。
假设表如下:
ID | 校名 | 总A | 总B | 年级 |
---|---|---|---|---|
1个 | 学校A | 5个 | 5个 | 1个 |
2个 | 学校A | 5个 | 5个 | 2个 |
3个 | 乙校 | 5个 | 5个 | 1个 |
4个 | 乙校 | 5个 | 5个 | 2个 |
Select schoolname
SUM(CASE WHEN (grade='1' ) THEN totalA ELSE 0 END) AS t1A,
SUM(CASE WHEN (grade='1' ) THEN totalB ELSE 0 END) AS t1B,
SUM(CASE WHEN (grade='2' ) THEN totalA ELSE 0 END) AS t2A,
SUM(CASE WHEN (grade='2' ) THEN totalB ELSE 0 END) AS t2B,
我想知道是否可以在一种情况下同时添加 totalA 和 B。
我试过
Select schoolname
CASE WHEN (grade='1' ) THEN SUM(totalA+totalB) ELSE 0 END AS Grade 1,
CASE WHEN (grade='2' ) THEN SUM(totalA+totalB) ELSE 0 END AS Grade 2,
From school
Group By schoolname
但它给我错误。
我想实现以下目标:
校名 | 1级 | 2年级 |
---|---|---|
学校A | 10 | 10 |
乙校 | 10 | 10 |
是的,可以在同一个表中按组查询 MySQL。
为此,您需要使用这种类型的查询:
SELECT schoolname,
SUM(CASE WHEN (grade = 1) THEN totalA + totalB ELSE 0 END) AS grade_1,
SUM(CASE WHEN (grade = 2) THEN totalA + totalB ELSE 0 END) AS grade_2
FROM school
GROUP BY schoolname
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.