从您的代码示例扩展而来,以下内容提供了获胜/平局。问题出在“ WHERE R.result <>RE.result”
上,它总是为任何不同的结果代码分配不同的分组。在这里,我将该子句(和其他一些子句)更改为将“ W”和“ D”分组在一起以编写单个代码:
SELECT result, TYPE, MIN(DATE) AS StartDate, MAX(DATE) AS EndDate, COUNT(*) AS Games
FROM (SELECT result, TYPE, DATE, compfull, (SELECT COUNT(*)
FROM resultengine R
WHERE IF(R.result IN ('W','D'),1,0) <> IF(RE.result IN ('W','D'),1,0)
AND R.date <= RE.date) AS RunGroup
FROM resultengine RE) A WHERE result IN ('W','D') GROUP BY IF(result IN ('W','D'),1,0), RunGroup ORDER BY Games