【问题标题】:Oracle SQL - Generate aggregate row using selectOracle SQL - 使用选择生成聚合行
【发布时间】:2019-02-12 04:06:04
【问题描述】:

我有一张如下表。

|    FILE   | CATEGORY1 | CATEGORY2 | CATEGORY3 |
| File1.txt |    3      |     2     |     6     |
| File2.txt |    4      |     7     |     3     |
| File2.txt |    3      |     1     |     1     |

现在,是否可以添加一个新行作为选择查询的一部分,它将提供添加到结果集中的以下行。

| Total     |    10     |     10    |     10    |

预期的最终输出:

|    FILE   | CATEGORY1 | CATEGORY2 | CATEGORY3 |
| File1.txt |    3      |     2     |     6     |
| File2.txt |    4      |     7     |     3     |
| File2.txt |    3      |     1     |     1     |
| Total     |    10     |     10    |     10    |

非常感谢您对实现上述结果的任何帮助。

谢谢。

【问题讨论】:

    标签: sql oracle aggregate


    【解决方案1】:

    你可以用这个:

    SELECT FILE, CATEGORY1, CATEGORY2, CATEGORY3 From TestTable
    union all
    SELECT 'Total', Sum([CATEGORY1]), Sum([CATEGORY2]), Sum([CATEGORY3]) From TestTable
    

    如果列中的值允许为空,则可以使用nvl 之类的函数。

    你也可以试试rollup

    SELECT File, Sum([CATEGORY1]), Sum([CATEGORY2]), Sum([CATEGORY3]) From
    TestTable
    group by rollup (File);
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-12
    • 1970-01-01
    • 2016-12-21
    相关资源
    最近更新 更多