GROUP BY 子句将数据集按指定列分组并聚合每个组的指定值,语法:SELECT aggregate_function(column_name) FROM table_name GROUP BY column_name。其用法包括:1. 聚合数据(计算每个组的总和、平均值等);2. 分组数据(将数据按指定列划分为组);3. 过滤数据(结合 HAVING 子句)。
GROUP BY 语法
GROUP BY 子句将数据集按指定列进行分组,并聚合每个组的指定值。其语法如下:
SELECT aggregate_function(column_name) FROM table_name GROUP BY column_name
其中:
aggregate_function:聚合函数,如 SUM(), COUNT(), AVG(), MAX(), MIN() 等。column_name:用于分组的列。用法
GROUP BY 的主要用法包括:
HAVING 子句,对分组后的数据进行过滤。示例
假设我们有一个名为 Sales 的表,包含以下数据:
| OrderID | Product | Category | Price |
|---|---|---|---|
| 1 | Product A | Category 1 | 10 |
| 2 | Product A | Category 1 | 15 |
| 3 | Product B | Category 2 | 20 |
| 4 | Product C | Category 3 | 30 |
示例 1:计算每个类别产品的总价
SELECT Category, SUM(Price) AS TotalPrice FROM Sales GROUP BY Category;
结果:
| Category | Total Price |
|---|---|
| Category 1 | 25 |
| Category 2 | 20 |
| Category 3 | 30 |
示例 2:按产品分组,统计订单数
SELECT Product, COUNT(*) AS OrderCount FROM Sales GROUP BY Product;
结果:
| Product | OrderCount |
|---|---|
| Product A | 2 |
| Product B | 1 |
| Product C | 1 |