如何使用SQL语句实现数据累加

qxl5040970 2023-03-01 11:01:58

表名:A,字段名如下;数据为玩家每次使用充值卡的时间,及对应金额

需要计算玩家使用充值卡这个道具,累计使用满50元时,花费了多长时间

 

 

...全文
107 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
幸福感奇差 2023-03-01
  • 打赏
  • 举报
回复

最内层用窗口函数计算各个用户的累计值,外层查询累计值大于 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

34,623

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧