Table of Contents
MySQL uses GROUP BY group query
MySQL GROUP BY example
MySQL GROUP BY and HAVING clause
GROUP BY子句:MySQL与标准SQL
Home Database Mysql Tutorial What does group by mean?

What does group by mean?

Mar 09, 2023 pm 06:37 PM
mysql group by

group by means "group query", which can be understood as "grouping (Group) according to (by) certain rules"; its function is to divide a data set into several small ones through certain rules area, and then perform data processing on several small areas. In MySQL, GROUP BY is an optional clause of the SELECT statement that is used to group query results based on one or more fields. It reduces the number of rows in the result set.

What does group by mean?

The operating environment of this tutorial: windows7 system, mysql8 version, Dell G3 computer.

group by means "group query".

The Group By statement literally means "group (Group) according to (by) certain rules" in English. Its function is to divide a data set into several small areas through certain rules, and then perform data processing on several small areas.

MySQL uses GROUP BY group query

In MySQL, the GROUP BY keyword can group query results based on one or more fields.

The GROUP BY clause groups a set of rows into a small group of summary row records by the value of a column or expression. The GROUP BY clause returns one row for each group. In other words, it reduces the number of rows in the result set.

The GROUP BY clause is often used with aggregate functions such as SUM, AVG, MAX, MIN and COUNT. Aggregate functions are used in the SELECT clause to calculate information about each grouping.

The GROUP BY clause is an optional clause of the SELECT statement. The following is the GROUP BY clause syntax:

SELECT 
    c1, c2,..., cn, aggregate_function(ci)
FROM
    table
WHERE
    where_conditions
GROUP BY c1 , c2,...,cn;
Copy after login

The GROUP BY clause must appear after the FROM and WHERE clauses. Following the GROUP BY keyword is a comma-separated list of columns or expressions that are to be used as conditions to group rows.

MySQL GROUP BY example

1. Simple MySQL GROUP BY example

Let’s take a look at the sample database (yiibaidb ), its structure is as follows -

mysql> desc orders;
Copy after login

What does group by mean?

Assuming that you want to group the values ​​of the order status into subgroups, you need to use the GROUP BY clause and specify Perform grouping by status column, query as follows:

SELECT 
    status
FROM
    orders
GROUP BY status;
Copy after login

Execute the above query statement and get the following results-

What does group by mean?

You can see that the GROUP BY clause returns The status value is unique. It works like the DISTINCT operator as shown in the following query:

SELECT DISTINCT
    status
FROM
    orders;
Copy after login

Execute the above query statement and get the following results-

What does group by mean?

2 , MySQL GROUP BY and aggregate functions

You can use aggregate functions to perform calculations on a group of rows and return a single value. The GROUP BY clause is often used with aggregate functions to perform calculations for each group and return a single value.

For example, if you want to know the number of orders in each status, you can use the COUNT function and the GROUP BY clause query statement, as shown below:

SELECT 
    status, COUNT(*) AS total_number
FROM
    orders
GROUP BY status;
Copy after login

Execute the above query statement and get the following results -

What does group by mean?

Please refer to the following orders (orders) and order details (orderdetails) tables, their ER diagram is as follows-

What does group by mean?

To get the total amount of all orders by status, you can use the orderdetails table to connect the orders table, and use the SUM function to calculate the total amount. Please refer to the following query:

SELECT 
    status, SUM(quantityOrdered * priceEach) AS amount
FROM
    orders
        INNER JOIN
    orderdetails USING (orderNumber)
GROUP BY status;
Copy after login

Executing the above query, you get the following results -

What does group by mean?

Similarly, the following query returns the order number and the total amount of each order .

SELECT 
    orderNumber,
    SUM(quantityOrdered * priceEach) AS total
FROM
    orderdetails
GROUP BY orderNumber;
Copy after login

Execute the above query and get the following results-

What does group by mean?

3. MySQL GROUP BY expression example

In addition to columns, rows can be grouped by expressions. The following query gets the total sales per year.

SELECT 
    YEAR(orderDate) AS year,
    SUM(quantityOrdered * priceEach) AS total
FROM
    orders
        INNER JOIN
    orderdetails USING (orderNumber)
WHERE
    status = 'Shipped'
GROUP BY YEAR(orderDate);
Copy after login

Execute the above query and get the following results -

What does group by mean?

In this example, we use the YEAR function to extract year data from the order date (orderDate). Only orders with Shipped status are included. Note that the expressions appearing in the SELECT clause must be the same as those in the GROUP BY clause.

MySQL GROUP BY and HAVING clause

You can use the HAVING clause to filter the groups returned by the GROUP BY clause. The following query uses the HAVING clause to select annual sales totals from 2013 onwards.

SELECT 
    YEAR(orderDate) AS year,
    SUM(quantityOrdered * priceEach) AS total
FROM
    orders
        INNER JOIN
    orderdetails USING (orderNumber)
WHERE
    status = 'Shipped'
GROUP BY year
HAVING year > 2013;
Copy after login

Execute the above query and get the following results -

What does group by mean?

GROUP BY子句:MySQL与标准SQL

标准SQL不允许使用GROUP BY子句中的别名,但MySQL支持此选项。以下查询从订单日期提取年份,并对每年的订单进行计数。该year用作表达式YEAR(orderDate)的别名,它也用作GROUP BY子句中的别名,此查询在标准SQL中无效。

参考以下查询 -

SELECT 
    YEAR(orderDate) AS year, COUNT(orderNumber)
FROM
    orders
GROUP BY year;
Copy after login

执行上面查询,得到以下结果 -

What does group by mean?

MySQL还允许您以升序或降序(标准SQL不能提供)对组进行排序。默认顺序是升序。例如,如果要按状态获取订单数量并按降序对状态进行排序,则可以使用带有DESC的GROUP BY子句,如下查询语句:

SELECT 
    status, COUNT(*)
FROM
    orders
GROUP BY status DESC;
Copy after login

执行上面查询,得到以下结果 -

1What does group by mean?

请注意,在GROUP BY子句中使用DESC以降序对状态进行排序。我们还可以在GROUP BY子句中明确指定ASC,按状态对分组进行升序排序。

【相关推荐:mysql视频教程

The above is the detailed content of What does group by mean?. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

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

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Hot Topics

Java Tutorial
1655
14
PHP Tutorial
1253
29
C# Tutorial
1228
24
MySQL's Role: Databases in Web Applications MySQL's Role: Databases in Web Applications Apr 17, 2025 am 12:23 AM

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.

How to start mysql by docker How to start mysql by docker Apr 15, 2025 pm 12:09 PM

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

Laravel Introduction Example Laravel Introduction Example Apr 18, 2025 pm 12:45 PM

Laravel is a PHP framework for easy building of web applications. It provides a range of powerful features including: Installation: Install the Laravel CLI globally with Composer and create applications in the project directory. Routing: Define the relationship between the URL and the handler in routes/web.php. View: Create a view in resources/views to render the application's interface. Database Integration: Provides out-of-the-box integration with databases such as MySQL and uses migration to create and modify tables. Model and Controller: The model represents the database entity and the controller processes HTTP requests.

Solve database connection problem: a practical case of using minii/db library Solve database connection problem: a practical case of using minii/db library Apr 18, 2025 am 07:09 AM

I encountered a tricky problem when developing a small application: the need to quickly integrate a lightweight database operation library. After trying multiple libraries, I found that they either have too much functionality or are not very compatible. Eventually, I found minii/db, a simplified version based on Yii2 that solved my problem perfectly.

Laravel framework installation method Laravel framework installation method Apr 18, 2025 pm 12:54 PM

Article summary: This article provides detailed step-by-step instructions to guide readers on how to easily install the Laravel framework. Laravel is a powerful PHP framework that speeds up the development process of web applications. This tutorial covers the installation process from system requirements to configuring databases and setting up routing. By following these steps, readers can quickly and efficiently lay a solid foundation for their Laravel project.

MySQL and phpMyAdmin: Core Features and Functions MySQL and phpMyAdmin: Core Features and Functions Apr 22, 2025 am 12:12 AM

MySQL and phpMyAdmin are powerful database management tools. 1) MySQL is used to create databases and tables, and to execute DML and SQL queries. 2) phpMyAdmin provides an intuitive interface for database management, table structure management, data operations and user permission management.

MySQL vs. Other Programming Languages: A Comparison MySQL vs. Other Programming Languages: A Comparison Apr 19, 2025 am 12:22 AM

Compared with other programming languages, MySQL is mainly used to store and manage data, while other languages ​​such as Python, Java, and C are used for logical processing and application development. MySQL is known for its high performance, scalability and cross-platform support, suitable for data management needs, while other languages ​​have advantages in their respective fields such as data analytics, enterprise applications, and system programming.

MySQL vs. Other Databases: Comparing the Options MySQL vs. Other Databases: Comparing the Options Apr 15, 2025 am 12:08 AM

MySQL is suitable for web applications and content management systems and is popular for its open source, high performance and ease of use. 1) Compared with PostgreSQL, MySQL performs better in simple queries and high concurrent read operations. 2) Compared with Oracle, MySQL is more popular among small and medium-sized enterprises because of its open source and low cost. 3) Compared with Microsoft SQL Server, MySQL is more suitable for cross-platform applications. 4) Unlike MongoDB, MySQL is more suitable for structured data and transaction processing.

See all articles