mysql - SQL脚本-用户连续亏损次数的计数器

标签 mysql sql

有人可以帮助我们使用一些 SQL 脚本来解决下一个问题: 我们希望有一个计数器,记录用户连续输钱的次数,直到他再次获胜,下面是期望结果的示例:

enter image description here

10 倍!

最佳答案

我不是 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/

相关文章:

php - mysql_affected_rows() 解决方法?

mysql 查询在数据库上消耗很长时间,但在其他数据库上运行良好

php - SQL 查询优化帮助

mysql - 如何根据 10 个值的范围查找字段的计数

mysql - 在 MySQL 中不使用 'LIMIT' 查找第 4 或第 n 个最高薪水

mysql - Rails 3,mysql/mysql2 将一些检索到的字符串错误解释为 ASCII-8BIT

php - 为什么数据库结果不显示重音?

sql - 错误: Unknown Punctuation String @ 7

sql - 如何查询数据库中用户的排名,但只考虑每个用户的最新条目?

mysql - SQL WHERE 子句条件不起作用