PostgreSQL CUBE"/>
介绍PostgreSQL CUBE
介绍PostgreSQL CUBE
本文我们学习如何使用PostgreSQL CUBE生成多个分组结果集。
PostgreSQL CUBE概述
PostgreSQL CUBE是Group By子句的子句。Cube可以生成多个分组集。分组集是一组用于分组列的集合。下面列出cube子句的语法:
SELECTc1,c2,c3,aggregate (c4)
FROMtable_name
GROUP BYCUBE (c1, c2, c3);
- 首先,cube子句在select语句中的group子句中
- 其次,在select列表中,指定想分析列(维度或维度列)和聚集函数表达式
- 第三,在Group by子句中,通过cube子句的参数指定维度列
查询会生成所有可能在cube中指定基于维度列的分组集合。cube子句是定义多个分组集的简化方式,请看下面示例:
CUBE(c1,c2,c3) GROUPING SETS ((c1,c2,c3), (c1,c2),(c1,c3),(c2,c3),(c1),(c2),(c3), ())
通常情况下,如果在cube中指定列的数量是n,则会有2的n次方个组合。PostgreSQL 可以执行部分cube减少聚集计算量,语法如下:
SELECTc1,c2,c3,aggregate (c4)
FROMtable_name
GROUP BYc1,CUBE (c1, c2);
PostgreSQL CUBE示例
这里使用sales表,示例如下:
查询使用cube子句生成多个分组集合:
SELECTbrand,segment,SUM (quantity)
FROMsales
GROUP BYCUBE (brand, segment)
ORDER BYbrand,segment;
查询结果:
部分cube查询示例:
SELECTbrand,segment,SUM (quantity)
FROMsales
GROUP BYbrand,CUBE (segment)
ORDER BYbrand,segment;
查询结果如下:
总结
我们学习了PostgreSQL CUBE生成多个分组结果集。
更多推荐
介绍PostgreSQL CUBE
发布评论