首頁 >資料庫 >mysql教程 >如何在MySQL中使用SUM和COUNT進行條件聚合?

如何在MySQL中使用SUM和COUNT進行條件聚合?

Patricia Arquette
Patricia Arquette原創
2024-11-16 07:32:02663瀏覽

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

MySQL 中 SUM 和 COUNT 的條件聚合

使用關聯式資料庫時,經常需要執行條件聚合來匯總資料根據特定標準。 MySQL 提供了多種方法來實現此目的,包括使用 IF() 和 CASE 語句。

使用 IF() 語句

在您的範例中,您嘗試了使用 IF() 語句來計算 kind 等於 1 的行數。但是,MySQL 不允許在 SUM 和 等聚合函數中使用 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