如何对左表按右表规定的范围分组计算

请问要完成图中这样的计算是否有比较好的实现方式?

attachments-2023-11-WM9wA4p865604493bbfce.png

希望能就用 sql 实现,能类似 group by 那样直接分组计算值

如果 beg_idx, end_idx 组成的分段是无间隔无重叠的,我有办法解决。但上面这个图是更普遍的情况,我暂时没啥想法

请先 登录 后评论

1 个回答

wale

请参考下面demo:

tb=table(1..20 as index,1..20 as val)
def mySum(tb,beg_idx,end_idx){
        val=tb.val
        index=tb.index
        return sum(val[index>=beg_idx[0]and index <end_idx[0]])
        }
select mySum(tb,beg_idx,end_idx)  from table(1..5 as index,[1,4,7,12,15]as beg_idx,[4,9,14,15,19] as end_idx) group by index
请先 登录 后评论