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;
在此查詢中:
以上是如何在MySQL中使用SUM和COUNT進行條件聚合?的詳細內容。更多資訊請關注PHP中文網其他相關文章!