gpt4 book ai didi

mysql - 查找导致 SUM 变为 0 的第一条记录

转载 作者:太空宇宙 更新时间:2023-11-03 12:23:00 24 4
gpt4 key购买 nike

我正在使用 MySQL 5.5 存储如下表:

sequence  category  value
1 A 100
2 A 200
3 A -300 # sum becomes 0
4 B 200
5 B 500

对于每个类别,我想找到导致该类别的 sum(value) 低于 0 的第一条记录(按顺序排序)。

我目前的解决方案是(SQL函数伪代码):

create function find_low_value(in_category) returns int
begin
declare cursor select sequence, value from table where category = in_category;
declare sum int default 0;

open and fetch cursor;
set sum = sum + value;
if sum <= 0 then
return sequence;
end if;
end

但是效率不高。是否有更好/更简单的解决方案?

谢谢。

最佳答案

我不知道这算不算“更好/更简单”,但您可以将其编写为常规 SQL 查询:

SELECT MIN(sequence)
FROM ( SELECT t1.sequence
FROM table_name t1
JOIN table_name t2
ON t2.category = t1.category
AND t2.sequence <= t1.sequence
WHERE t1.category = ...
GROUP
BY t1.sequence
HAVING SUM(t2.value) <= 0
)
;

关于mysql - 查找导致 SUM 变为 0 的第一条记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18951810/

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