最佳答案
我不是 MySQL 专家,但这个问题对我来说似乎很有趣。
对于我的测试数据,我刚刚添加了一个列时间戳,因为很确定您有一个列,其中包含有人玩游戏时的信息
我的方法是:
创建一些测试数据:
CREATE TABLE mytest
(
game_timestamp datetime
,W_L_amount float
)
;
INSERT INTO mytest (game_timestamp, W_L_amount)
VALUES
('2017-05-01', -5),
('2017-05-02', -9),
('2017-05-03', -8),
('2017-05-04', -7),
('2017-05-05', 5),
('2017-05-06', 9),
('2017-05-07', -8),
('2017-05-08', -6),
('2017-05-09', 5)
;
解决方案:
SELECT game_timestamp
,W_L_amount
,case when W_L_amount < 0 then @Ctr:=@Ctr+1 else @Ctr:=0 end as LossesInRow
FROM mytest, (select @Ctr:=0, @rank=0) a
order by game_timestamp
您可以在此处找到包含整个 SQL 语句的 Rextester 来重现它:http://rextester.com/YGNL13736
关于mysql - SQL脚本-用户连续亏损次数的计数器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45038955/