繁体   English   中英

SQL,案例条件内的总和

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM