大果子你说谁呢 2023-11-07 14:36 采纳率: 33.3%
浏览 11
已结题

oracle怎么实现多一行进行每列的总计和

Before
DATA          C1  C2   C3   C4   C5  C6  C7   C8    C9
---------------------------------------------------------
R1            22  21   8    3    5   0    5    7    9
R2            0   0    0    0    2   0    1    0    50
R3            0   0    12   0    0   0    0    0    11
R4            0   80   21   18   9   57   34   30   20
R5            0   0    0    0    0   4    25   2    12
R6            0   55   22   76   25  17   7    73   48

After
DATA          C1  C2   C3   C4   C5  C6  C7   C8    C9
---------------------------------------------------------
R1            22  21   8    3    5   0    5    7    9
R2            0   0    0    0    2   0    1    0    50
R3            0   0    12   0    0   0    0    0    11
R4            0   80   21   18   9   57   34   30   20
R5            0   0    0    0    0   4    25   2    12
R6            0   55   22   76   25  17   7    73   48
Total         22  156  63   97   41  78   72   112  150
  • 写回答

2条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-11-07 17:41
    关注

    【以下回答由 GPT 生成】

    要实现在每列下方添加总计行的功能,你可以使用Oracle SQL的聚合函数和UNION操作符来实现。具体步骤如下:

    1. 首先,你需要使用UNION操作符将原始数据表和总计行进行合并。总计行是由每列的聚合函数计算得出的,比如SUM函数。
    2. 使用SUM函数计算每列的总和,并将总和命名为'Total'。
    3. 为了确保总计行始终出现在最后一行,你可以使用ORDER BY子句,按照需要的顺序对数据进行排序。
    4. 最后,你可以将结果输出到你所选择的输出设备。

    以下是一个示例的Oracle SQL代码实现:

    SELECT 'DATA' AS "DATA", 
           C1, C2, C3, C4, C5, C6, C7, C8, C9
    FROM your_table
    UNION ALL
    SELECT 'Total' AS "DATA", 
           SUM(C1), SUM(C2), SUM(C3), SUM(C4), SUM(C5), SUM(C6), SUM(C7), SUM(C8), SUM(C9)
    FROM your_table
    ORDER BY CASE WHEN "DATA" = 'Total' THEN 2 ELSE 1 END;
    

    以上代码首先将原始数据表命名为"your_table",然后使用UNION ALL将原始数据表和总计行合并。总计行由SUM函数计算每列的总和得出,然后命名为'Total'。ORDER BY子句用于确保总计行始终出现在最后一行。你可以根据需要修改列名和表名。

    请注意,每列的数据类型应该是可以进行聚合操作的类型,例如数值类型。如果有非数值类型的列,你可能需要进行适当的转换或调整。



    【相关推荐】



    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 11月13日
  • 修改了问题 11月7日
  • 创建了问题 11月7日

悬赏问题

  • ¥15 有关wireshark抓包的问题
  • ¥15 需要写计算过程,不要写代码,求解答,数据都在图上
  • ¥15 向数据表用newid方式插入GUID问题
  • ¥15 multisim电路设计
  • ¥20 用keil,写代码解决两个问题,用库函数
  • ¥50 ID中开关量采样信号通道、以及程序流程的设计
  • ¥15 U-Mamba/nnunetv2固定随机数种子
  • ¥15 vba使用jmail发送邮件正文里面怎么加图片
  • ¥15 vb6.0如何向数据库中添加自动生成的字段数据。
  • ¥20 在easyX库下编写C语言扑克游戏跑的快,能实现简单的人机对战