How to implement field summation in mysql
In mysql, you can use the SUM() function to implement field summation. This function returns the sum of the specified field values. The syntax is "SELECT SUM(DISTINCT expression) FROM table name [WHERE clause];)".
The operating environment of this tutorial: windows7 system, mysql8 version, Dell G3 computer.
In mysql, you can use the SUM() function to implement field summation.
SUM()
The function is used to calculate the sum of a set of values or expressions. It can return the sum of the specified field values. SUM()
The function The syntax is as follows:
SUM(DISTINCT expression)
SUM()
How does the function work?
- If the
SUM
function is used in aSELECT
statement that does not return matching rows, theSUM
function returnsNULL
instead of0
. The -
DISTINCT
operator allows calculation of distinct values in a collection. The -
SUM
function ignoresNULL
values in calculations.
MySQL SUM() function example
Let’s take a look at the orderdetails
table in the sample database (yiibaidb).
You can use the SUM()
function to calculate the total amount of the order number 10100
, as shown in the following query:
SELECT FORMAT(SUM(quantityOrdered * priceEach),2) total FROM orderdetails WHERE orderNumber = 10100;
Execute the above query statement, The following results are obtained -
mysql> SELECT FORMAT(SUM(quantityOrdered * priceEach),2) total FROM orderdetails WHERE orderNumber = 10100; +-----------+ | total | +-----------+ | 10,223.83 | +-----------+ 1 row in set
Please note that the FORMAT()
function is used to format the return value of the SUM()
function.
MySQL SUM and GROUP BY clause
When combined with the GROUP BY
clause, the SUM()
function Calculates the sum of each group specified in the GROUP BY
clause.
For example, the total amount for each order can be calculated using the SUM
function with the GROUP BY
clause as follows:
SELECT orderNumber, FORMAT(SUM(quantityOrdered * priceEach),2) total FROM orderdetails GROUP BY orderNumber ORDER BY SUM(quantityOrdered * priceEach) DESC;
Execute The above query statement yields the following results -
+-------------+-----------+ | 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 and HAVING
You can use the HAVING
clause in the SUM
function to Filter results by specific conditions. For example, you can calculate the total order quantity and only select orders with a total amount greater than 60000
. The following query statement-
SELECT orderNumber, FORMAT(SUM(quantityOrdered * priceEach),2) FROM orderdetails GROUP BY orderNumber HAVING SUM(quantityOrdered * priceEach) > 60000 ORDER BY SUM(quantityOrdered * priceEach);
Execute the above query statement and get the following results-
mysql> SELECT orderNumber, FORMAT(SUM(quantityOrdered * priceEach),2) FROM orderdetails GROUP BY orderNumber HAVING SUM(quantityOrdered * priceEach) > 60000 ORDER BY SUM(quantityOrdered * priceEach); +-------------+--------------------------------------------+ | orderNumber | FORMAT(SUM(quantityOrdered * priceEach),2) | +-------------+--------------------------------------------+ | 10310 | 61,234.67 | | 10287 | 61,402.00 | | 10165 | 67,392.85 | +-------------+--------------------------------------------+ 3 rows in set
MySQL SUM and LIMIT
Suppose you want to calculateproducts
The sum of the top ten most expensive products in the table, the following query can be asked:
SELECT SUM(buyprice) FROM products ORDER BY buyprice DESC LIMIT 10;
Execute the above query statement and get the following results-
mysql> SELECT SUM(buyprice) FROM products ORDER BY buyprice DESC LIMIT 10; +---------------+ | SUM(buyprice) | +---------------+ | 5983.47 | +---------------+ 1 row in set
It does not work, Because the SELECT
statement with the SUM
function returns only one row, the LIMIT
clause constraint on the number of rows to be returned is invalid.
To solve this problem, please use the following subquery:
SELECT FORMAT(SUM(buyprice),2) FROM (SELECT buyprice FROM products ORDER BY buyprice DESC LIMIT 10) price;
Execute the above query statement and get the following results -
+-------------------------+ | FORMAT(SUM(buyprice),2) | +-------------------------+ | 958.71 | +-------------------------+ 1 row in set
How does the above statement run?
- Subquery selects the top ten most expensive products.
- The outer query calculates the sum of the top
10
products with the highest price returned from the subquery.
MySQL SUM and NULL
If there are no matching rows, the SUM
function returns a NULL
value. Sometimes you want the SUM
function to return 0
instead of NULL
. In this case, you can use the COALESCE
function. The COALESCE
function accepts two parameters. If the first parameter is NULL
, the second parameter is returned, otherwise the first parameter is returned; refer to the following query statement:
SELECT COALESCE(SUM(quantityOrdered * priceEach),0) FROM orderdetails WHERE productCode = 'S1_212121';
Execute the above query statement and get the following results-
mysql> SELECT COALESCE(SUM(quantityOrdered * priceEach),0) FROM orderdetails WHERE productCode = 'S1_212121'; +----------------------------------------------+ | COALESCE(SUM(quantityOrdered * priceEach),0) | +----------------------------------------------+ | 0.00 | +----------------------------------------------+ 1 row in set
MySQL SUM and connection statement
You can use SELECT
JOIN
in the statement SUM
The function calculates the sum of values in a table based on conditions specified by values in another table.
For example, to calculate the total amount of canceled orders, use the following statement:
SELECT FORMAT(SUM(quantityOrdered * priceEach),2) loss FROM orderdetails INNER JOIN orders USING(orderNumber) WHERE status = 'Cancelled'
[Related recommendations: mysql video tutorial]
The above is the detailed content of How to implement field summation in mysql. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

MySQL is an open source relational database management system, mainly used to store and retrieve data quickly and reliably. Its working principle includes client requests, query resolution, execution of queries and return results. Examples of usage include creating tables, inserting and querying data, and advanced features such as JOIN operations. Common errors involve SQL syntax, data types, and permissions, and optimization suggestions include the use of indexes, optimized queries, and partitioning of tables.

You can open phpMyAdmin through the following steps: 1. Log in to the website control panel; 2. Find and click the phpMyAdmin icon; 3. Enter MySQL credentials; 4. Click "Login".

MySQL is chosen for its performance, reliability, ease of use, and community support. 1.MySQL provides efficient data storage and retrieval functions, supporting multiple data types and advanced query operations. 2. Adopt client-server architecture and multiple storage engines to support transaction and query optimization. 3. Easy to use, supports a variety of operating systems and programming languages. 4. Have strong community support and provide rich resources and solutions.

MySQL's position in databases and programming is very important. It is an open source relational database management system that is widely used in various application scenarios. 1) MySQL provides efficient data storage, organization and retrieval functions, supporting Web, mobile and enterprise-level systems. 2) It uses a client-server architecture, supports multiple storage engines and index optimization. 3) Basic usages include creating tables and inserting data, and advanced usages involve multi-table JOINs and complex queries. 4) Frequently asked questions such as SQL syntax errors and performance issues can be debugged through the EXPLAIN command and slow query log. 5) Performance optimization methods include rational use of indexes, optimized query and use of caches. Best practices include using transactions and PreparedStatemen

Apache connects to a database requires the following steps: Install the database driver. Configure the web.xml file to create a connection pool. Create a JDBC data source and specify the connection settings. Use the JDBC API to access the database from Java code, including getting connections, creating statements, binding parameters, executing queries or updates, and processing results.

The process of starting MySQL in Docker consists of the following steps: Pull the MySQL image to create and start the container, set the root user password, and map the port verification connection Create the database and the user grants all permissions to the database

The main role of MySQL in web applications is to store and manage data. 1.MySQL efficiently processes user information, product catalogs, transaction records and other data. 2. Through SQL query, developers can extract information from the database to generate dynamic content. 3.MySQL works based on the client-server model to ensure acceptable query speed.

The key to installing MySQL elegantly is to add the official MySQL repository. The specific steps are as follows: Download the MySQL official GPG key to prevent phishing attacks. Add MySQL repository file: rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm Update yum repository cache: yum update installation MySQL: yum install mysql-server startup MySQL service: systemctl start mysqld set up booting
