gpt4 book ai didi

sql - 如果超过 15 行,则向表中插入与打开行数相等的行数

转载 作者:行者123 更新时间:2023-12-04 18:30:43 27 4
gpt4 key购买 nike

我的 table

id    sum    type
1 3 -1
1 6 -1
1 -6 2
1 -3 1
1 3 -1
1 6 -1

这些

1     3      -1 

是空行。类型始终为 -1。总和可以不同。

这些

1     -6      2 

是封闭的行。输入 != -1。 sum = -sum for open row

这些行

1     3      -1   
1 6 -1
1 -6 2
1 -3 1

会互相否定。这些

1     3      -1
1 6 -1

会留下来。如果最后打开的行数超过 15,那么对于每个打开的行,我需要在表中插入一行,其中 sum 是打开行的总和,类型是 2。

分组

select id
, sum
, sum(
case
when type = -1 then 1
when type != -1 then -1
else 0
end
) as num
from table
group by id, sum

id sum num
1 3 2
1 6 2
1 -6 2
1 -3 1

可能会帮助我找到组合。但是我不知道之后该怎么办。

最佳答案

select      t.val_id
,t.val_sum
,2 as val_type

from (select val_id
,-abs (val_sum) as val_sum
,sum (case when val_type = -1 then 1 else -1 end) as occurrences

from mytable

group by val_id
,abs (val_sum)

having sum (case when val_type = -1 then 1 else -1 end) > 15
) t
lateral view explode (split (space (cast (occurrences as int) - 1),' ')) e
;

关于sql - 如果超过 15 行,则向表中插入与打开行数相等的行数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42207267/

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