首页 >数据库 >mysql教程 >如何在MySQL中使用SUM和COUNT进行条件聚合?

如何在MySQL中使用SUM和COUNT进行条件聚合?

Patricia Arquette
Patricia Arquette原创
2024-11-16 07:32:02659浏览

How to Perform Conditional Aggregation with SUM and COUNT in MySQL?

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;

在此查询中:

  • CASE 语句用于评估条件 kind = 1。
  • 如果条件为 TRUE,则返回 1。
  • 如果条件为FALSE,则返回0。
  • 然后将CASE语句的结果传递给SUM()聚合函数。

以上是如何在MySQL中使用SUM和COUNT进行条件聚合?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn