介绍一下GROUPING SETS,用二维表展示
时间: 2024-02-29 22:53:12 浏览: 36
GROUPING SETS 是 SQL 的标准扩展,可以一次性生成多个汇总结果。使用 GROUPING SETS 可以同时生成多个汇总结果,而不需要多次查询数据库。
假设有如下一个表格:
| fruit | color | price |
|-------|-------|-------|
| apple | red | 3.5 |
| apple | green | 4.0 |
| banana| yellow| 2.0 |
| banana| green | 2.5 |
| grape | purple| 5.0 |
我们可以使用 GROUPING SETS 来同时按照 fruit、color 和 fruit、color 一起分组,并计算每组的平均价格,如下所示:
```
SELECT fruit, color, AVG(price)
FROM table1
GROUP BY GROUPING SETS((fruit), (fruit, color));
```
这个查询将返回如下结果:
| fruit | color | AVG(price) |
|-------|-------|------------|
| apple | NULL | 3.75 |
| apple | green | 4.0 |
| apple | red | 3.5 |
| banana| NULL | 2.25 |
| banana| green | 2.5 |
| banana| yellow| 2.0 |
| grape | NULL | 5.0 |
|-------|-------|------------|
| NULL | NULL | 3.5 |
可以看到,该查询返回了三个汇总结果:按照 fruit 分组的结果、按照 fruit 和 color 分组的结果,以及所有数据的汇总结果。其中,NULL 表示未指定的列。
上面的结果可以用二维表格来展示,如下所示:
| fruit | color | AVG(price) |
|-------|-------|------------|
| apple | NULL | 3.75 |
| banana| NULL | 2.25 |
| grape | NULL | 5.0 |
| NULL | NULL | 3.5 |
| apple | green | 4.0 |
| apple | red | 3.5 |
| banana| green | 2.5 |
| banana| yellow| 2.0 |
从表格中可以清晰地看到按照不同的列进行分组得到的结果,以及所有数据的汇总结果。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)