共計 2322 個字符,預計需要花費 6 分鐘才能閱讀完成。
本篇內容主要講解“mysql 中 sum() 函數如何用”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓丸趣 TV 小編來帶大家學習“mysql 中 sum() 函數如何用”吧!
在 mysql 中,sum() 函數用于計算一組值或表達式的總和,語法為“SUM(DISTINCT expression)”,DISTINCT 運算符允許計算集合中的不同值。sum() 函數需要配合 SELECT 語句一起使用,如果在沒有返回匹配行 SELECT 語句中使用 SUM() 函數,則 SUM() 函數會返回 NULL,而不是 0;SUM() 函數在計算時,會忽略列值為 NULL 的行。
本教程操作環境:windows7 系統、mysql8 版本、Dell G3 電腦。
mysql sum() 函數
SUM() 函數用于計算一組值或表達式的總和,SUM() 函數的語法如下:
SUM(DISTINCT expression)
參數描述 expression 必須項。字段或公式
SUM() 函數是如何工作的?
如果在沒有返回匹配行 SELECT 語句中使用 SUM 函數,則 SUM 函數返回 NULL,而不是 0。
DISTINCT 運算符允許計算集合中的不同值。
SUM() 函數在計算時,會忽略列值為 NULL 的行。
sum() 函數的使用示例
為了方便理解,首先創建一個學生成績表 tb_students_score,學生成績表的數據內容如下所示
mysql SELECT * FROM tb_students_score;
使用 sum() 函數在 tb_students_score 表中計算學生成績的總分
mysql SELECT SUM(student_score) AS score_sum FROM tb_students_score;
由查詢結果可以看到,SUM() 函數返回學生的所有成績之和為 942。
擴展知識:
MySQL SUM 與 GROUP BY 子句
當與 GROUP BY 子句組合時,SUM() 函數計算 GROUP BY 子句中指定的每個分組的總和。例如,可以使用具有 GROUP BY 子句的 SUM 函數計算每個訂單的總金額,如下所示:
SELECT orderNumber,
FORMAT(SUM(quantityOrdered * priceEach),2) total
FROM orderdetails
GROUP BY orderNumber
ORDER BY SUM(quantityOrdered * priceEach) DESC;
執行上面查詢語句,得到以下結果 –
+-------------+-----------+
| orderNumber | total |
+-------------+-----------+
| 10165 | 67,392.85 |
| 10287 | 61,402.00 |
| 10310 | 61,234.67 |
| 10212 | 59,830.55 |
*** 此處省略了一大波數據 *****
| 10116 | 1,627.56 |
| 10158 | 1,491.38 |
| 10144 | 1,128.20 |
| 10408 | 615.45 |
+-------------+-----------+
327 rows in set
MySQL SUM 與 HAVING
您可以使用 HAVING 子句中在 SUM 函數中來根據特定條件過濾結果。例如,您可以計算總訂單量,只能選擇總金額大于 60000 的訂單。如下查詢語句 –
SELECT orderNumber,
FORMAT(SUM(quantityOrdered * priceEach),2)
FROM orderdetails
GROUP BY orderNumber
HAVING SUM(quantityOrdered * priceEach) 60000
ORDER BY SUM(quantityOrdered * priceEach);
執行上面查詢語句,得到以下結果 –
MySQL SUM 與 LIMIT
假設您想要計算 products 表中前十名最昂貴的產品的總和,可以提出以下查詢:
SELECT SUM(buyprice)
FROM products
ORDER BY buyprice DESC
LIMIT 10;
執行上面查詢語句,得到以下結果 –
它不起作用,因為具有 SUM 函數的 SELECT 語句只返回一行,LIMIT 子句約束要返回的行數無效。要解決此問題,請使用以下子查詢:
SELECT FORMAT(SUM(buyprice),2) FROM
(SELECT buyprice
FROM products
ORDER BY buyprice DESC
LIMIT 10) price;
執行上面查詢語句,得到以下結果 –
上面語句是怎么運行的?子查詢選擇十大價格最高的產品。外部查詢計算從子查詢返回的前 10 個價格最高的產品的總和。
MySQL SUM 與 NULL
如果沒有匹配的行,則 SUM 函數返回 NULL 值。有時,您希望 SUM 函數返回 0 而不是 NULL。在這種情況下,可以使用 COALESCE 函數。COALESCE 函數接受兩個參數,如果第一個參數為 NULL,則返回第二個參數,否則返回第一個參數; 參考以下查詢語句:
SELECT COALESCE(SUM(quantityOrdered * priceEach),0)
FROM orderdetails
WHERE productCode = S1_212121
執行上面查詢語句,得到以下結果 –
到此,相信大家對“mysql 中 sum() 函數如何用”有了更深的了解,不妨來實際操作一番吧!這里是丸趣 TV 網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!