mysql - 对具有多个 ID 的行求和

标签 mysql select sum

我正在使用此查询:

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

但现在我需要修改此查询,因此当 voc 等于多个数字时,它会进行 SUM :

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

不幸的是,上面的内容无法正常工作,我已经读到这可以使用CASE来完成,但我对此的了解太少......

最佳答案

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

UPD 正如 @Raul 在评论中所述 - WHERE 应该更有效,如下所示:

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

UPD2 将 Sum 更改为 Count - 感谢 @newtower

关于mysql - 对具有多个 ID 的行求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8870001/

相关文章:

当前日期所在的MySQL查询值

sql - PostgreSQL 在 where 子句中使用求和

使用 SUM、WHERE、GROUP_BY 的 MySQL 子查询

javascript - 检查字段之和是否大于100?

php - 通过匹配 ID 从另一个表更新行单元格

mysql - 是什么导致表需要修复?

SQL 获取 Netezza 数据库中的唯一行

php - 如何在mysql中按序列化格式的字段中的特定记录进行排序

'OR' 中的 MySQL 'WHERE' 导致 'using filesort'

javascript - 如何在 JavaScript 中将 id 放入警报中