我使用它来创建每个成本值的总数:

SELECT
    ITEM_NO
    COST_1,    
    COST_2,
    COST_3,
    COST_4,   
    SUM(COST_1)  over (order by loan_no rows unbounded preceding ) COST_1_TOTAL,
    SUM(COST_2)  over (order by loan_no rows unbounded preceding ) COST_2_TOTAL,
    SUM(COST_3)  over (order by loan_no rows unbounded preceding ) COST_3_TOTAL,
    SUM(COST_4)  over (order by loan_no rows unbounded preceding ) COST_4_TOTAL
FROM data

它创建了这个:

OUTPUT

我希望它看起来像这样:

enter image description here

这可能吗?我不知道从哪里开始.

一如既往,我们将不胜感激.

推荐答案

使用GROUP BYROLLUP:

SELECT ITEM_NO,
       SUM(COST_1) AS cost_1,
       SUM(COST_2) AS cost_2,
       SUM(COST_3) AS cost_3,
       SUM(COST_4) AS cost_4
FROM   data
GROUP BY ROLLUP(item_no)

对于示例数据,其中:

CREATE TABLE data (item_no, cost_1, cost_2, cost_3, cost_4) AS
SELECT 1057, 8111.73, -8600, 1550, CAST(NULL AS NUMBER(8,2)) FROM DUAL UNION ALL
SELECT 1693, 7856.25, -8600, 1575, NULL FROM DUAL UNION ALL
SELECT 1701, 5206.20, -8600, 2000, NULL FROM DUAL UNION ALL
SELECT 1784, 6002.97, -8600, 1900, NULL FROM DUAL;

哪些输出:

ITEM_NO COST_1 COST_2 COST_3 COST_4
1057 8111.73 -8600 1550 null
1693 7856.25 -8600 1575 null
1701 5206.2 -8600 2000 null
1784 6002.97 -8600 1900 null
null 27177.15 -34400 7025 null

fiddle

Sql相关问答推荐

基于前面行的值:当x&>2时重复1,当连续3行x=0时则重复0

在SQL中将相同且紧挨着的元素进行分组

基于多个字段删除Access中的重复记录,同时保留最低优先级

在请求结束之前,PostgreSQL不会考虑使用中的删除

SQL:如何查找聚合满足条件的连续日期

查询页面推荐

多条件SQL排序行为

SQL数据库规范化与数据插入

如何将不同层次的产品组和规格组合到最深一层?

Postgres SQL查询从字符串中获取邮箱地址

将时间范围划分为全天和前后剩余小时

如何使用SQL生成数据的滚动3天总和

同时插入和更新记录

更改重复值的情况

连续天跟踪购买情况(将标记返回到另一列?)

在 Oracle 21c 中透视文本值

为什么在事务中未被后续使用的CTE执行SELECT...FOR UPDATE无效?

强制 SQL 始终通过 R 从视图中返回至少一行

SQL - 使用子查询返回多行的 LIKE 命令

交叉应用 OPENJSON / PIVOT - 错误的顺序