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 | TotalPrice |
---|---|
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 |
以上就是sql中groupby的用法的详细内容,更多请关注CTO智库其它相关文章!