gpt4 book ai didi

mysql - 从数据库中获取连胜记录

转载 作者:行者123 更新时间:2023-12-04 11:58:24 30 4
gpt4 key购买 nike

我关注了this关于尝试从我的投注数据库中获得连胜的教程。数据有一个结果(赢/输/待定)和一个日期(以及其他值)这是我正在使用的 SQL 命令...

SELECT * 
FROM (SELECT Result,
MIN(date) as StartDate,
MAX(date) as EndDate,
COUNT(*) as Games
FROM (SELECT *,
(SELECT COUNT(*)
FROM bets G
WHERE G.result <> GR.result
AND G.date <= GR.date) as RunGroup
FROM bets GR WHERE user = 4 ORDER BY date DESC) A
GROUP BY result, RunGroup
ORDER BY Min(date)) A
WHERE result = 'Win'
ORDER BY Games DESC

与我的唯一区别是我试图过滤单个用户的投注而不是每个人的投注但是......我可以在我的数据库中看到连续 3 次获胜但我的输出是 2。任何人都可以发现我哪里出错了?

我想获得连续最大的一行,我认为此时我需要做的就是添加 LIMIT 1

谢谢

enter image description here

最佳答案

如果您希望将所有连续的胜利总结在一行中,那么我建议处理这个有一个间隙和岛屿问题。一个简单的方法是统计未获胜的累计次数。然后为每组获胜分配一个组,可用于聚合:

select user, grp, count(*) as num_in_sequence,
min(date), max(date)
from (select b.*,
sum(result <> 'Win') over (partition by user order by date) as grp
from bets b
) b
where result = 'Win'
group by user, grp;

关于mysql - 从数据库中获取连胜记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68891157/

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