久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

mysql中sum()函數如何用

152次閱讀
沒有評論

共計 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 網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-07-13發表,共計2322字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 黄大仙区| 六安市| 托里县| 南溪县| 绥化市| 江门市| 平南县| 房产| 文山县| 花垣县| 绥化市| 平阳县| 嵩明县| 五莲县| 太保市| 陆河县| 白沙| 河间市| 龙井市| 佛学| 上杭县| 临沧市| 萨迦县| 永清县| 龙游县| 泰宁县| 英德市| 津市市| 岳池县| 沁阳市| 东乡县| 张家界市| 杂多县| 宁蒗| 郯城县| 东丽区| 甘洛县| 谷城县| 莒南县| 迁西县| 新邵县|