gpt4 book ai didi

sql - 如何在条件持续时在Mysql中选择行

转载 作者:行者123 更新时间:2023-12-04 21:06:43 25 4
gpt4 key购买 nike

我有这样的事情:

 Name.....Value
A...........10
B............9
C............8

意思是,这些值按降序排列。我需要创建一个新表,其中包含占总值 60% 的值。所以,这可能是一个伪代码:
set Total = sum(value) 
set counter = 0
foreach line from table OriginalTable do:
counter = counter + value
if counter > 0.6*Total then break
else insert line into FinalTable
end

如您所见,我在这里解析 sql 行。我知道这可以使用处理程序来完成,但我无法让它工作。因此,任何使用处理程序或其他创意的解决方案都会很棒。
它也应该在合理的时间复杂度内 - 解决方案 how to select values that sum up to 60% of the total
有效,但速度慢得要命:(
谢谢!!!!

最佳答案

您可能需要使用 lead()lag() window function ,可能带有 recursive query将行合并在一起。看到这个相关的问题:

merge DATE-rows if episodes are in direct succession or overlapping

如果您使用的是 MySQL,您可以使用以下方法解决缺少窗口函数的问题:

Mysql query problem

关于sql - 如何在条件持续时在Mysql中选择行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6186854/

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