MySql:是否可以 'SUM IF' 或 'COUNT IF' ?

标签 mysql

我有一列“小时” 我有一列“种类”(可以是 1,2 或 3)

我想做这样的事情:

SELECT count(id), SUM(hour) as totHour, SUM( IF ( kind = 1, 1, 0 ) ) as countKindOne

SELECT count(id), SUM(hour) as totHour, COUNT( IF ( kind = 1 ) ) as countKindOne

但是 mysql 告诉我我有一个错误...错误是什么!?

请参阅此 stackoverflow 主题:MySQL SUM IF field b = field a

..我无法回复这个...

最佳答案

您可以使用 CASE 语句:

SELECT count(id), 
    SUM(hour) as totHour, 
    SUM(case when kind = 1 then 1 else 0 end) as countKindOne

关于MySql:是否可以 'SUM IF' 或 'COUNT IF' ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13075505/

相关文章:

mysql - 查找总和大于预定义值的所有可能组

mysql - 复合 Mysql join sql 中每组所需的最大 n

mysql - 无法正确获取最新的25个ORDER BY LIMIT

mysql - 如何从mysql中的url中删除子域?

Mysql复制某些列

mysql - 不能对多列使用全文搜索

mysql - 这两个查询是否相同?

php - 将电子邮件发送到从数据库中检索到的电子邮件地址由 PHP 中的 session 发起数组到字符串转换?

php - 查询生成器自定义 on 子句

mysql - 使用 LIKE 运算符时如何防止 SQL 注入(inject)?