对具有多个ID的行求和 [英] Sum rows with multiple ID

查看:78
本文介绍了对具有多个ID的行求和的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用此查询:

SELECT SUM(voc=1) AS s, SUM(voc=2) AS d, SUM(voc=3) AS p FROM `pl`;

但是现在我需要修改此查询,因此当voc等于多个数字时,它将变为SUM:

But now I need to modify this query, so it'll SUM when voc is equal to the multiple numbers:

SELECT SUM ( voc = 1 OR voc = 7 OR voc = 3 ) as `s` FROM `pl`;

不幸的是,以上操作无法正常进行,我已阅读到可以使用CASE完成此操作,但是我对此的了解太少了...

Unfortunately , the above is not working properly, I've read that this can be done using CASE, but my knowledge about that is too small...

推荐答案

SELECT SUM ( CASE WHEN voc = 1 OR voc = 7 OR voc = 3 THEN 1 ELSE 0 END) as `s` FROM `pl`;

UPD 如@Raul在评论中所述-WHERE应该更加有效,例如:

UPD As stated by @Raul in comment - WHERE should be much more effective, like this:

SELECT COUNT(*) AS `s` FROM `p1` WHERE voc IN (1,3,7);

UPD2 将总和"更改为计数"-感谢@newtower

UPD2 Changed Sum's to Count's - thanks to @newtower

这篇关于对具有多个ID的行求和的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆