3.4w+
社区成员
表名:A,字段名如下;数据为玩家每次使用充值卡的时间,及对应金额
需要计算玩家使用充值卡这个道具,累计使用满50元时,花费了多长时间
最内层用窗口函数计算各个用户的累计值,外层查询累计值大于 50 元的最小时间和用户充值最小时间的差值
select *,
datediff(day,
min(logtime) over(partition by srcname),
min(case when cumsum >= 50 then logtime else null end) over(partition by srcname)
) 时间差
from
(SELECT *, sum(充值卡) over(partition by srcname order by logtime) cumsum
FROM tbl) t