【问题标题】:Calculate grand total in oracle sql developer在 oracle sql developer 中计算总计
【发布时间】:2021-10-13 05:32:21
【问题描述】:

如何在 oracle 的 SQL 开发人员中计算查询中的总计。

打破报告 Compute Sum 不适用于 SQL developer。它仅适用于 SQL plus。 也不想使用组功能。 有没有办法在 SQL 开发人员中运行查询并在结果/行的末尾显示总数。 也想在jdbc java中使用查询

例如,我需要选择一个表并列出所有符合特定条件的记录,并在记录末尾显示总和

Select volume, value , *.t1 from table1 t1 where trunc(create_date) = trunc(sysdate)

这将显示 50 条记录..我想在列 volume 和 value 下的所有记录的末尾显示这 2 列的总和。

        Volume  value   xxx  yy  zzzz
        25       123.5  aa   bb   cc
        35       10     a    c    b
        50       100    c   nn    xc
    
       --        --
       110       233.5

【问题讨论】:

  • 使用 F5 运行查询,它将像在 SQL*Plus 中一样运行
  • 我想在没有 F5 的情况下使用,因为我需要它在 jdbc java 中类似地运行
  • 很遗憾,如果不计算总计,您就无法计算总计。要么group by要么在应用端计算。
  • 或通过窗口函数。我们还可以使用递归来遍历列表以提供类似 SUM 的行为。所以有几种方法可以聚合。并非所有都包括GROUP BY。很难猜测 OP 真正需要什么。
  • @user1929905 尝试提供完整/清晰的需求,包括数据和预期结果。 I don't want to 并没有真正的帮助,除非你能解释为什么你 don't want tocan't

标签: sql oracle oracle-sqldeveloper sqlplus


【解决方案1】:

您可以使用以下查询来实现结果 -

SELECT volume,
       value ,
       t1.*
  FROM table1 t1
 WHERE TRUNC(create_date) = TRUNC(SYSDATE)
 UNION ALL
SELECT SUM(volume),
       SUUM(value),
       NULL,
       NULL,  
       ...  -- Add other NULLS according to your column list in table1.
  FROM table1;

【讨论】:

  • 有什么办法不使用group by
  • 当您需要总计时,这意味着您已经通过 SUM 函数获得总计。如果您已经在使用 SUM 函数,则必须使用 GROUP BY。如果您也可以在这里发布您的查询和预期结果会更好吗?
  • 添加了更多细节
【解决方案2】:

“我不想要”是一个糟糕的理由。

您为什么可以并且想要使用 SQL*Plus 的命令(在其他地方无法使用),但标准 SQL 功能却不在您的视线范围内?我建议你重新考虑你所说和所想的。

如果您这样做,汇总可能是您的不错选择。

SQL> select deptno,
  2         sum(sal) sum_sal,
  3         sum(comm) sum_comm
  4  from emp
  5  group by rollup(deptno);

    DEPTNO    SUM_SAL   SUM_COMM
---------- ---------- ----------
        10       8750
        20      10875
        30       9400       2200
                29025       2200

SQL>

【讨论】:

    【解决方案3】:

    您可以在此处使用ROLLUP FUNCTION。

    SELECT SUM (volume) volume,
               SUM (value) value,
               xxx
    FROM table1 t1
    WHERE TRUNC (create_date) = TRUNC (SYSDATE)
    GROUP BY ROLLUP (xxx)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-09-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-02
      • 2017-07-23
      相关资源
      最近更新 更多