Rumah >pangkalan data >tutorial mysql >Bagaimana untuk menggunakan fungsi sum() dalam mysql
Dalam mysql, fungsi sum() digunakan untuk mengira jumlah set nilai atau ungkapan Sintaks ialah "SUM (ungkapan DISTINCT)". dalam set. Fungsi sum() perlu digunakan bersama-sama dengan pernyataan SELECT Jika fungsi SUM() digunakan dalam pernyataan SELECT yang tidak mengembalikan baris yang sepadan, fungsi SUM() akan mengembalikan NULL dan bukannya 0; fungsi akan mengabaikan lajur semasa mengira Baris dengan nilai NULL.
Persekitaran pengendalian tutorial ini: sistem windows7, versi mysql8, komputer Dell G3.
fungsi mysql sum()
Fungsi SUM() digunakan untuk mengira jumlah set nilai atau ungkapan. Fungsi SUM() Sintaks adalah seperti berikut:
SUM(DISTINCT expression)
参数 | 描述 |
---|---|
expression | 必须项。字段或公式 |
Bagaimanakah fungsi SUM() berfungsi?
Jika fungsi SUM digunakan dalam pernyataan SELECT yang tidak mengembalikan baris yang sepadan, fungsi SUM mengembalikan NULL dan bukannya 0.
Pengendali DISTINCT membenarkan pengiraan nilai yang berbeza dalam satu set.
Fungsi SUM() akan mengabaikan baris dengan nilai lajur NULL apabila mengira.
Contoh penggunaan fungsi sum()
Untuk memudahkan pemahaman, mula-mula buat jadual skor pelajar tb_students_score , pelajar Kandungan data jadual skor adalah seperti berikut
mysql> SELECT * FROM tb_students_score;
Gunakan fungsi sum() untuk mengira jumlah markah markah pelajar dalam jadual tb_students_score
mysql> SELECT SUM(student_score) AS score_sum FROM tb_students_score;
Seperti yang anda boleh lihat daripada hasil pertanyaan, fungsi SUM() mengembalikan jumlah semua gred pelajar sebagai 942.
Pengetahuan lanjutan:
Klausa MySQL SUM dan GROUP BY
Apabila digunakan dengan GROUP BY Apabila klausa digabungkan, fungsi SUM() mengira jumlah untuk setiap kumpulan yang dinyatakan dalam klausa GROUP BY. Sebagai contoh, anda boleh menggunakan fungsi SUM dengan klausa GROUP BY untuk mengira jumlah amaun setiap pesanan, seperti berikut:
SELECT orderNumber, FORMAT(SUM(quantityOrdered * priceEach),2) total FROM orderdetails GROUP BY orderNumber ORDER BY SUM(quantityOrdered * priceEach) DESC;
Laksanakan pernyataan pertanyaan di atas dan dapatkan keputusan berikut -
+-------------+-----------+ | 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 dan HAVING
Anda boleh menggunakan klausa HAVING dalam fungsi SUM untuk menapis hasil berdasarkan syarat tertentu. Sebagai contoh, anda boleh mengira jumlah kuantiti pesanan dan hanya memilih pesanan dengan jumlah keseluruhan lebih daripada 60,000. Pernyataan pertanyaan berikut-
SELECT orderNumber, FORMAT(SUM(quantityOrdered * priceEach),2) FROM orderdetails GROUP BY orderNumber HAVING SUM(quantityOrdered * priceEach) > 60000 ORDER BY SUM(quantityOrdered * priceEach);
Laksanakan pernyataan pertanyaan di atas dan dapatkan hasil berikut-
Jumlah dan LIMIT MySQL
Andaikan anda ingin mengira jumlah sepuluh produk paling mahal dalam jadual produk, anda boleh bertanya pertanyaan berikut:
SELECT SUM(buyprice) FROM products ORDER BY buyprice DESC LIMIT 10;
Laksanakan perkara di atas pernyataan pertanyaan dan dapatkan hasil berikut -
Ia tidak berfungsi kerana pernyataan SELECT dengan fungsi SUM hanya mengembalikan satu baris dan kekangan klausa LIMIT pada bilangan baris ke dikembalikan adalah tidak sah. Untuk menyelesaikan masalah ini, sila gunakan subquery berikut:
SELECT FORMAT(SUM(buyprice),2) FROM (SELECT buyprice FROM products ORDER BY buyprice DESC LIMIT 10) price;
Laksanakan pernyataan pertanyaan di atas dan dapatkan keputusan berikut-
Bagaimana pernyataan di atas berlari? Subquery memilih sepuluh produk paling mahal. Pertanyaan luar mengira jumlah 10 produk harga tertinggi teratas yang dikembalikan daripada subkueri.
SUM MySQL dengan NULL
Jika tiada baris yang sepadan, fungsi SUM mengembalikan nilai NULL. Kadangkala anda mahu fungsi SUM mengembalikan 0 dan bukannya NULL. Dalam kes ini, fungsi COALESCE boleh digunakan. Fungsi COALESCE menerima dua parameter Jika parameter pertama adalah NULL, parameter kedua dikembalikan, jika tidak, parameter pertama dikembalikan; Keputusan berikut-
SELECT COALESCE(SUM(quantityOrdered * priceEach),0) FROM orderdetails WHERE productCode = 'S1_212121';
[Cadangan berkaitan: tutorial video mysql
]Atas ialah kandungan terperinci Bagaimana untuk menggunakan fungsi sum() dalam mysql. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!