MySQL 中 SUM 和 COUNT 的条件聚合
在使用关系数据库时,经常需要执行条件聚合来汇总数据根据具体标准。 MySQL 提供了多种方法来实现此目的,包括使用 IF() 和 CASE 语句。
使用 IF() 语句
在您的示例中,您尝试了使用 IF() 语句来计算 kind 等于 1 的行数。但是,MySQL 不允许在 SUM 和 COUNT 等聚合函数中使用 IF() 语句。这是因为 IF() 返回标量值,而聚合函数需要列表达式作为输入。
使用 CASE 语句
要执行条件聚合,您可以使用 CASE 语句。 CASE 语句允许您指定多个条件并根据这些条件返回不同的值。
以下查询使用 CASE 语句来计算 kind 等于 1 的行数:
SELECT COUNT(id), SUM(hour) AS totHour, SUM(CASE WHEN kind = 1 THEN 1 ELSE 0 END) AS countKindOne FROM your_table;
在此查询中:
以上是如何在MySQL中使用SUM和COUNT进行条件聚合?的详细内容。更多信息请关注PHP中文网其他相关文章!