sql - 在查询中使用 ROLLUP...小问题

标签 sql database oracle

在oracle数据库中是一个“table_one”:

COL1 COL2
-----------------
2 4
2 1
13 14
13 15

我有这个问题:

SELECT col1, sum(col2) FROM table_one GROUP BY ROLLUP(col1, col2);

查询执行后我有:

------------
2    1
2    4
2    5
13   14
13   15
13   29
     34 

但我需要另一种方式,像这样:

------------
2    1
2    4
2    5
13   14
13   15
13   29

没有所有列的摘要 我如何更改我的查询......?

最佳答案

有两种方法可以解决这个问题。第一种是使用分组集来准确定义要创建的汇总组。

在这种情况下,您可以使用以下查询定义对 (col1) 和 (col1, col2) 进行分组:

select col1, sum(col2) 
from table_one
group by grouping sets ((col1), (col1, col2))

否则,您可以使用以下查询按 col1 分组并在 col2 上汇总:

select col1, sum(col2) 
from table_one
group by col1, rollup(col2)

这两个查询都应该产生您需要的输出。

关于sql - 在查询中使用 ROLLUP...小问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4530896/

相关文章:

java - H2数据库是否兼容Oracle 'Insert All'语句?

php - 使用 oci_parse 和 oci_execute

sql - 在一个 SQL 查询中加入两个 COUNT()

sql - 在 Sequelize 中使每个用户 ID 的字段唯一?

c# - 如何排除将特定数据库添加到我的阵列?

sql-server - 如何判断数据库是否被更改?

java - 远程调试 PL/SQL 包

mysql - 返回平均值以及特定行

php - 如何在输入字段中显示查询结果的多个值?

php - 在 Codeigniter 中连接两个数据库