PostgreSQL rollup在子查询中的使用

   2024-09-30 2030
核心提示:在 PostgreSQL 中,ROLLUP 是一种分组集合的操作,它可以计算多个级别的汇总信息首先,我们创建一个名为 sales_data 的表,其中

在 PostgreSQL 中,ROLLUP 是一种分组集合的操作,它可以计算多个级别的汇总信息

首先,我们创建一个名为 sales_data 的表,其中包含 product_id、region_id 和销售额:

CREATE TABLE sales_data (    product_id INT,    region_id INT,    sales NUMERIC(10, 2));

接下来,我们插入一些示例数据:

INSERT INTO sales_data (product_id, region_id, sales)VALUES (1, 1, 100), (1, 2, 200), (2, 1, 300), (2, 2, 400);

现在,我们将使用 ROLLUP 在子查询中进行汇总计算。以下查询将按产品和地区对销售额进行分组,并在子查询中使用 ROLLUP 计算每个产品和地区的总销售额:

SELECT product_id, region_id, SUM(sales) as total_salesFROM sales_dataGROUP BY ROLLUP(product_id, region_id)ORDER BY product_id, region_id;

这将返回以下结果:

 product_id | region_id | total_sales------------+-----------+-------------          1 |         1 |        100          1 |         2 |        200          1 |           |        300          2 |         1 |        300          2 |         2 |        400          2 |           |        700           |           |       1000

在这个例子中,我们可以看到每个产品和地区的销售额,以及每个产品和所有地区的总销售额。最后一行显示了所有产品和地区的总销售额。

 
举报打赏
 
更多>同类物流大全
推荐图文
推荐物流大全
点击排行

网站首页  |  关于我们  |  联系方式网站留言    |  赣ICP备2021007278号