mysql では、sum() 関数は一連の値または式の合計を計算するために使用されます。構文は「SUM (DISTINCT 式)」です。DISTINCT 演算子を使用すると、さまざまな値を計算できます。セット内。 sum() 関数は SELECT ステートメントと一緒に使用する必要があります。一致する行を返さない SELECT ステートメントで SUM() 関数を使用すると、SUM() 関数は 0 ではなく NULL を返します。関数は計算時に列を無視します。NULL 値を持つ行。
このチュートリアルの動作環境: Windows7 システム、mysql8 バージョン、Dell G3 コンピューター。
mysql sum() 関数
SUM() 関数は、一連の値または式の合計を計算するために使用されます。 SUM() 関数 構文は次のとおりです。
SUM(DISTINCT expression)
Description | |
---|---|
expression ####### ##必須。フィールドまたは式 | #SUM() 関数はどのように機能しますか? |
一致する行を返さない SELECT ステートメントで SUM 関数を使用すると、SUM 関数は 0 ではなく NULL を返します。
DISTINCT 演算子を使用すると、コレクション内の個別の値を計算できます。
SUM() 関数は、計算時に NULL 列値を持つ行を無視します。
理解を容易にするために、まず生徒のスコア テーブル tb_students_score を作成します、学生 スコア テーブルのデータ内容は次のとおりですmysql> SELECT * FROM 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
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 と LIMIT
products テーブル内の最も高価な製品の上位 10 位の合計を計算したいとします。次のクエリを実行できます。 SELECT SUM(buyprice)
FROM products
ORDER BY buyprice DESC
LIMIT 10;
上記のクエリ ステートメントを実行して、次の結果 -
SELECT FORMAT(SUM(buyprice),2) FROM (SELECT buyprice FROM products ORDER BY buyprice DESC LIMIT 10) price;上記のクエリ ステートメントを実行すると、次の結果が得られます - 上記のステートメントはどのように実行されますか?サブクエリは、最も高価な製品のトップ 10 を選択します。外側のクエリは、サブクエリから返された価格の最も高い上位 10 個の製品の合計を計算します。
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()関数を使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。