首頁  >  文章  >  資料庫  >  如何在 MySQL 中使用條件聚合根據特定條件對值進行計數和求和?

如何在 MySQL 中使用條件聚合根據特定條件對值進行計數和求和?

Patricia Arquette
Patricia Arquette原創
2024-11-16 08:41:03426瀏覽

How can I use conditional aggregation in MySQL to count and sum values based on specific criteria?

MySQL:使用「SUM IF」和「COUNT IF」進行條件聚合

SUM 和COUNT 等聚合函數對於匯總資料至關重要MySQL。但是,如果您需要對聚合應用條件怎麼辦?這就是條件聚合發揮作用的地方。

考慮一個場景,其中您有一個包含兩列的表:「小時」和「種類」。您想要根據對應的「kind」值是否為1來對「hour」值進行計數和求和。僅靠傳統的聚合函數無法處理此問題。

為了解決這個問題,MySQL 提供了 CASE 語句,它允許您定義聚合的自訂條件。以下是使用 CASE 語句修改後的查詢:

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

在此查詢中,CASE 語句檢查 'kind' 值是否等於 1。如果為 true,則傳回 1;如果為,則傳回 1。否則返回 0。然後使用 SUM() 函數對結果求和,統計 'kind' 等於 1 的出現次數。

透過使用條件聚合和 CASE 語句,可以有效地過濾和聚合您的資料是基於特定標準。這種強大的技術為 MySQL 中的資料分析和操作開啟了廣泛的可能性。

以上是如何在 MySQL 中使用條件聚合根據特定條件對值進行計數和求和?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn