ホームページ >データベース >mysql チュートリアル >mysqlでsum()関数を使用する方法

mysqlでsum()関数を使用する方法

青灯夜游
青灯夜游オリジナル
2022-06-17 18:52:0519450ブラウズ

mysql では、sum() 関数は一連の値または式の合計を計算するために使用されます。構文は「SUM (DISTINCT 式)」です。DISTINCT 演算子を使用すると、さまざまな値を計算できます。セット内。 sum() 関数は SELECT ステートメントと一緒に使用する必要があります。一致する行を返さない SELECT ステートメントで SUM() 関数を使用すると、SUM() 関数は 0 ではなく NULL を返します。関数は計算時に列を無視します。NULL 値を持つ行。

mysqlでsum()関数を使用する方法

このチュートリアルの動作環境: Windows7 システム、mysql8 バージョン、Dell G3 コンピューター。

mysql sum() 関数

SUM() 関数は、一連の値または式の合計を計算するために使用されます。 SUM() 関数 構文は次のとおりです。

SUM(DISTINCT expression)
##ParameterDescription#SUM() 関数はどのように機能しますか?
expression ####### ##必須。フィールドまたは式

一致する行を返さない SELECT ステートメントで SUM 関数を使用すると、SUM 関数は 0 ではなく NULL を返します。

  • 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;
mysqlでsum()関数を使用する方法

クエリ結果からわかるように、SUM() 関数はすべての学生の成績の合計を 942 として返します。

mysqlでsum()関数を使用する方法

拡張知識:

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

SUM 関数で HAVING 句を使用すると、特定の条件に基づいて結果をフィルタリングできます。たとえば、合計注文数量を計算し、合計金額が 60,000 を超える注文のみを選択できます。次のクエリ ステートメント -

SELECT orderNumber,
       FORMAT(SUM(quantityOrdered * priceEach),2)
FROM orderdetails
GROUP BY orderNumber
HAVING SUM(quantityOrdered * priceEach) > 60000
ORDER BY SUM(quantityOrdered * priceEach);
は、上記のクエリ ステートメントを実行し、次の結果を取得します -

mysqlでsum()関数を使用する方法#MySQL SUM と LIMIT

products テーブル内の最も高価な製品の上位 10 位の合計を計算したいとします。次のクエリを実行できます。

SELECT SUM(buyprice)
FROM products
ORDER BY buyprice DESC
LIMIT 10;
上記のクエリ ステートメントを実行して、次の結果 -

SUM 関数を使用した SELECT ステートメントは 1 行のみを返し、返される行数に対する LIMIT 句の制約が無効であるため、機能しません。 。この問題を解決するには、次のサブクエリを使用してください:

SELECT FORMAT(SUM(buyprice),2) FROM
(SELECT buyprice
FROM products
ORDER BY buyprice DESC
LIMIT 10) price;
mysqlでsum()関数を使用する方法上記のクエリ ステートメントを実行すると、次の結果が得られます -

上記のステートメントはどのように実行されますか?サブクエリは、最も高価な製品のトップ 10 を選択します。外側のクエリは、サブクエリから返された価格の最も高い上位 10 個の製品の合計を計算します。

mysqlでsum()関数を使用する方法

MySQL SUM と NULL

一致する行がない場合、SUM 関数は NULL 値を返します。 SUM 関数で NULL ではなく 0 を返したい場合があります。この場合、COALESCE 機能を使用できます。 COALESCE 関数は 2 つのパラメータを受け入れます。最初のパラメータが NULL の場合は 2 番目のパラメータが返され、それ以外の場合は最初のパラメータが返されます。次のクエリ ステートメントを参照してください:

SELECT COALESCE(SUM(quantityOrdered * priceEach),0)
FROM orderdetails
WHERE productCode = 'S1_212121';
上記のクエリ ステートメントを実行して、次の結果を取得します結果 -

[関連する推奨事項:

mysql ビデオ チュートリアル mysqlでsum()関数を使用する方法]

以上がmysqlでsum()関数を使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。