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

Patricia Arquette
發布: 2024-11-16 08:41:03
原創
425 人瀏覽過

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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板