当前位置:首页 > 行业动态 > 正文

mysql 分组

MySQL分组是将查询结果按照指定的列进行分类,可以使用GROUP BY子句实现。SELECT column1, COUNT(column2) FROM table GROUP BY column1;

在MySQL中,可以使用GROUP BY子句和聚合函数(如COUNT()、SUM()、AVG()等)实现分组计算,以下是一个详细的示例:

1、准备数据表

创建一个名为sales的数据表,包含以下字段:

id:主键,自增长

product_id:产品ID

sale_date:销售日期

quantity:销售数量

插入一些示例数据:

INSERT INTO sales (product_id, sale_date, quantity) VALUES
(1, '20220101', 10),
(1, '20220102', 20),
(1, '20220103', 30),
(2, '20220101', 5),
(2, '20220102', 15),
(2, '20220103', 25);

2、分组计算每个产品的总销售数量

使用GROUP BY子句和SUM()聚合函数对每个产品的总销售数量进行分组计算:

SELECT product_id, SUM(quantity) AS total_quantity
FROM sales
GROUP BY product_id;

查询结果如下:

product_id total_quantity
1 60
2 45

3、分组计算每个产品的月销售数量

使用GROUP BY子句和SUM()聚合函数对每个产品的月销售数量进行分组计算:

SELECT product_id, YEAR(sale_date) AS year, MONTH(sale_date) AS month, SUM(quantity) AS monthly_quantity
FROM sales
GROUP BY product_id, YEAR(sale_date), MONTH(sale_date);

查询结果如下:

product_id year month monthly_quantity
1 2022 1 60
1 2022 2 50
1 2022 3 40
2 2022 1 5
2 2022 2 30
2 2022 3 45

4、分组计算每个产品的年销售总量和年销售平均值

使用GROUP BY子句和SUM()、AVG()聚合函数对每个产品的年销售总量和年销售平均值进行分组计算:

SELECT product_id, YEAR(sale_date) AS year, SUM(quantity) AS total_quantity, AVG(quantity) AS average_quantity
FROM sales
GROUP BY product_id, YEAR(sale_date);

查询结果如下:

product_id year total_quantity average_quantity
1 2022 90 30
2 2022 75 37.5
0

随机文章