Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 晚上下班后。“现在刚起床。”罗德赫,我试着按照你提供的顺序处理你的数据,结果成功了。我所做的唯一更改是将我的自动增量列添加到最内部的ORDERBY子句中。如果您的实际表也有这样的自动增量,请添加它。如果没有,则是因为它们上的精确时间似乎让引擎选择它首先想要_Mysql - Fatal编程技术网

Mysql 晚上下班后。“现在刚起床。”罗德赫,我试着按照你提供的顺序处理你的数据,结果成功了。我所做的唯一更改是将我的自动增量列添加到最内部的ORDERBY子句中。如果您的实际表也有这样的自动增量,请添加它。如果没有,则是因为它们上的精确时间似乎让引擎选择它首先想要

Mysql 晚上下班后。“现在刚起床。”罗德赫,我试着按照你提供的顺序处理你的数据,结果成功了。我所做的唯一更改是将我的自动增量列添加到最内部的ORDERBY子句中。如果您的实际表也有这样的自动增量,请添加它。如果没有,则是因为它们上的精确时间似乎让引擎选择它首先想要,mysql,Mysql,晚上下班后。“现在刚起床。”罗德赫,我试着按照你提供的顺序处理你的数据,结果成功了。我所做的唯一更改是将我的自动增量列添加到最内部的ORDERBY子句中。如果您的实际表也有这样的自动增量,请添加它。如果没有,则是因为它们上的精确时间似乎让引擎选择它首先想要的返回数据的时间。看看你的电视机,让我知道。要确认正确的退货顺序,请尝试“从您的表中选择*,其中Player='Arne'按Player、timestamp排序……让我知道您在没有auto inc列的情况下得到了什么 +--------+---


晚上下班后。“现在刚起床。”罗德赫,我试着按照你提供的顺序处理你的数据,结果成功了。我所做的唯一更改是将我的自动增量列添加到最内部的ORDERBY子句中。如果您的实际表也有这样的自动增量,请添加它。如果没有,则是因为它们上的精确时间似乎让引擎选择它首先想要的返回数据的时间。看看你的电视机,让我知道。要确认正确的退货顺序,请尝试“从您的表中选择*,其中Player='Arne'按Player、timestamp排序……让我知道您在没有auto inc列的情况下得到了什么
+--------+------------------+--------+--------+
| player |    timestamp     | points | streak |
+--------+------------------+--------+--------+
| John   | 22/11/2012 23:01 |     -2 |      0 |
| John   | 22/11/2012 23:02 |      3 |      1 |
| John   | 22/11/2012 23:04 |      5 |      2 |
| John   | 22/11/2012 23:05 |     -2 |      0 |
| John   | 22/11/2012 23:18 |     15 |      1 |
| John   | 23/11/2012 23:20 |      5 |      2 |
| Chris  | 27/11/2012 22:12 |     20 |      1 |
| Chris  | 27/11/2012 22:14 |    -12 |      0 |
| Chris  | 27/11/2012 22:17 |      4 |      1 |
| Chris  | 27/11/2012 22:18 |     -4 |      0 |
| Chris  | 27/11/2012 22:20 |     10 |      1 |
| Chris  | 27/11/2012 22:21 |     20 |      2 |
| Chris  | 27/11/2012 22:22 |     90 |      3 |
+--------+------------------+--------+--------+
+--------+--------+-----------+
| player | points | maxstreak |
+--------+--------+-----------+
| John   |     20 |         2 |
| Chris  |    120 |         3 |
+--------+--------+-----------+
select t.*,
       (select max(timestamp) from t t2 where t2.timestamp <= t.timestamp and t2.player = t.player and t2.streak = 0
       ) as StreakStartTimeStamp
from t
where t.timeStamp = (select max(streak) from t t2 where t.player = t2.player)
select t.player,
       sum(s.points)
from t join
     (select t.*,
             (select max(timestamp) from t t2 where t2.timestamp <= t.timestamp and t2.player = t.player and t2.streak = 0
             ) as StreakStartTimeStamp
      from t
      where t.streak = (select max(streak) from t t2 where t.player = t2.player)
     ) s
     on t.player = s.player
group by t.player
SELECT
      Final.Player,
      MAX( Final.MaxStreak ) MaxStreak,
      MAX( Final.MaxStreakPoints ) MaxStreakPoints 
   FROM 
      ( 
        SELECT 
              PreOrd.Player,
              PreOrd.TimeStamp,
              PreOrd.Points,
              @nStreak       := case when PreOrd.Points < 0 then 0
                                     when PreOrd.Player = @cLastPlayer then @nStreak +1
                                     else 1 end  Streak,                              

              @nStreakPoints := case when @nStreak = 1 then PreOrd.Points
                                     when @nStreak > 1 then @nStreakPoints + PreOrd.Points
                                     else 0 end  StreakPoints,

              @nMaxStreak    := case when PreOrd.Player != @cLastPlayer then @nStreak
                                     when @nStreak > @nMaxStreak then @nStreak
                                     else @nMaxStreak end MaxStreak,

              @nMaxStreakPoints := case when PreOrd.Player != @cLastPlayer then @nStreakPoints
                                        when @nStreak >= @nMaxStreak and @nStreakPoints > @nMaxStreakPoints then @nStreakPoints
                                        else @nMaxStreakPoints end MaxStreakPoints,

              @cLastPlayer := PreOrd.Player PlayerChange
         FROM 
              ( select
                      S.Player,
                      S.TimeStamp,
                      S.Points
                   from 
                      Scores2 S
                   ORDER BY 
                      S.Player,
                      S.TimeStamp,
                      S.`index` ) PreOrd,
              ( select
                      @nStreak := 0,
                      @nStreakPoints := 0,
                      @nMaxStreak := 0,
                      @nMaxStreakPoints := 0,
                      @cLastPlayer := '~' ) SQLVars
      ) as Final
   group by 
      Final.Player