You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

LeetCode游戏玩法分析IV窗口函数SQL查询不通过原因排查

两段SQL执行结果差异分析

本题核心统计规则是:统计首次登录次日就再次登录的玩家占比,只有第二次登录与首次登录间隔刚好为1天的玩家才会被计入分子,不是统计所有有过连续两天登录记录的玩家。

可正常通过的SQL逻辑

它的统计逻辑完全匹配题目要求:

  • temp表中给每个玩家的所有登录记录按日期升序排序,生成行号rn,rn=2就对应该玩家的第二次登录记录
  • 筛选条件同时要求rn=2且两次登录间隔为1天,刚好命中「首次登录次日登录」的判断规则,统计的分子完全符合要求。

存在问题的SQL核心缺陷

这段SQL的统计规则和题目要求不一致:

  • 只筛选了所有登录间隔为1天的记录,完全没有限制这个间隔必须是首次登录和第二次登录之间的间隔
  • 只要玩家有任意一次连续两天登录的记录,不管是不是首次登录之后的次日,都会被计入分子,直接导致统计结果偏高。

你写的SQL刚好能跑对示例1,是因为示例里所有有连续登录记录的玩家,刚好连续登录发生在首次登录次日,没有例外场景。碰到下面这种反例就会直接出错:
假设某玩家的3条登录记录为:2024-01-01、2024-01-03、2024-01-04。按题目要求,这个玩家首次登录是1月1日,次日1月2日没登录,不符合统计条件,不能计入分子。但你的SQL会检测到1月3日和1月4日的间隔为1,把这个玩家算进去,结果自然不符合预期。

内容的提问来源于stack exchange,提问作者user_12

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 21:15:03