Mysql发现每个骑手他们最长的不间断胜利是什么

时间:2017-09-07 13:53:41

标签: mysql

我有一张名为骑手的表,里面有车友信息,结构如下

id |time_of_ride |rider |Results
 1 |08:12:16     |Gavin | Wins
 2 |08:12:31     |Gavin | Wins
 3 |08:12:40     |Louis | Loose
 4 |09:12:31     |Gavin | Wins
 5 |10:12:31     |Gavin | Wins

我想知道每个骑手他们最长的不间断胜利是什么。结果可能如下所示。

Rider       Wins
Gavin       2

1 个答案:

答案 0 :(得分:1)

您可以使用光标循环遍历每个骑手的一系列结果并计算胜利,直至找到损失:

DECLARE win_count INTEGER DEFAULT 0;
DECLARE max_wins INTEGER DEFAULT 0;
DECLARE result varchar(100) DEFAULT "";

DECLARE wins_cursor CURSOR FOR 
SELECT Results FROM TABLE where rider = Gavin;

OPEN wins_cursor;

LOOP

 FETCH wins_cursor INTO result;

 IF result = "Wins" THEN 
     SET win_count = win_count + 1;
 ELSE
     IF win_count > max_wins THEN
         SET max_wins = win_count;
     END IF;
     SET win_count = 0;
 END IF;



END LOOP;

CLOSE wins_cursor;

您需要调整此代码以返回值,并且可能在其周围添加另一个光标以循环所有车手,但您明白了。

编辑:添加变量以保存最大胜利数。