举例group by grouping
时间: 2023-08-24 21:06:10 浏览: 33
假设我们有一个名为“sales”的表,其中包含以下数据:
| 日期 | 员工 | 产品 | 销售额 |
| ----------- | ------ | ---- | ------ |
| 2021-01-01 | John | A | 1000 |
| 2021-01-01 | John | B | 2000 |
| 2021-01-01 | Sarah | A | 1500 |
| 2021-01-02 | Sarah | C | 3000 |
| 2021-01-02 | Michael| B | 2500 |
| 2021-01-02 | Michael| C | 3500 |
我们想按日期和员工对销售数据进行分组,并计算每个组的销售总额和平均销售额。
我们可以使用以下SQL查询来实现:
```
SELECT 日期, 员工, SUM(销售额) AS 销售总额, AVG(销售额) AS 平均销售额
FROM sales
GROUP BY 日期, 员工 WITH ROLLUP;
```
结果将如下所示:
| 日期 | 员工 | 销售总额 | 平均销售额 |
| ----------- | ------ | -------- | ---------- |
| 2021-01-01 | John | 3000 | 1500 |
| 2021-01-01 | Sarah | 1500 | 1500 |
| 2021-01-01 | NULL | 4500 | 1500 |
| 2021-01-02 | Michael| 6000 | 3000 |
| 2021-01-02 | Sarah | 3000 | 3000 |
| 2021-01-02 | NULL | 9000 | 3000 |
| NULL | NULL | 13500 | 2250 |
我们可以看到,使用ROLLUP关键字可以生成的总计行(NULL,NULL),其中包括所有日期和员工的销售总额和平均销售额。