在 PostgreSQL 中,ROLLUP
是一种分组集合的方式,它可以让你在一个查询中同时得到多个分组的结果
下面是一个使用 ROLLUP
的示例:
SELECT category, sub_category, COUNT(*) as total_sales FROM sales_data GROUP BY ROLLUP (category, sub_category);
这个查询会返回以下结果:
- 按照
category
和sub_category
分组的销售数据汇总。 - 按照
category
分组的销售数据汇总。 - 所有销售数据的总汇总。
在这个例子中,ROLLUP
首先按照 category
和 sub_category
对数据进行分组,然后按照 category
进行分组,最后得到所有数据的总汇总。这样,你可以在一个查询中得到多个层次的汇总信息。
需要注意的是,ROLLUP
只能在 GROUP BY
子句中使用,并且必须位于括号内。此外,ROLLUP
还可以与其他分组函数(如 CUBE
和 GROUPING SETS
)一起使用,以获取更复杂的分组汇总。