gpt4 book ai didi

sql - 甲骨文 SQL : SUM in first row with condition

转载 作者:行者123 更新时间:2023-12-05 09:27:01 24 4
gpt4 key购买 nike

我正在努力在查询中获得以下结果

这是我的 table

<表类="s-表"><头>行号Line_typ成本<正文>100060200075000300073000400072000500060600093000700072000800012000

我想要的结果是这个

<表类="s-表"><头>行号Line_typ费用<正文>1000610000 (0+5000+3000+2000)500065000 (0+3000+2000)800012000

基本上只显示 (6,1) 中具有 line_typ 的行,但将其间所有其他行的列成本相加。

感谢您的想法和帮助!!

伊凡

最佳答案

Tim Biegeleisen 的答案非常好,但需要一些中间产品和 oracle 功能的原因,可以在使用最少的 SQL 时看到:

  • 选择(1, 6)中的line_typ,按line_num排序。
  • 对具有较大 line_num n 的表进行第二次运行的成本求和,但是
  • 其中(第三次运行)n 之前的 (1, 6) 中没有 line_typ。

基本复杂度 O(N³),索引略少。

所以:

select h.line_num, h.line_typ,
(select sum(cost)
from tbl g
where g.line_num >= h.line_num
and not exists (select *
from tbl
where line_num > h.line_num
and line_typ in (1, 6)
and line_num <= g.line_num)
) as cost
from tbl h
where h.line_typ in (1, 6)
order by h.line_num

(为非 Oracle 搜索者提供。)

这是一个工作 demo 的链接.

关于sql - 甲骨文 SQL : SUM in first row with condition,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73076078/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com