Vous pouvez utiliser la requête suivante :
SELECT MIN(current_day) AS start_day,
MAX(current_day) AS stop_day,
browser
FROM (
SELECT current_day, browser,
@grp := IF(@br = browser, @grp,
IF(@br := browser, @grp+1, @grp+1)) AS grp
FROM mytable
CROSS JOIN (SELECT @grp := 0, @br := '') AS vars
ORDER BY current_day) AS t
GROUP BY browser, grp
La requête ci-dessus utilise des variables, afin d'identifier des îlots d'enregistrements consécutifs ayant le même browser
valeur. Il renvoie une seule ligne par navigateur. Vous devez répéter la même sous-requête deux fois et utiliser UNION
si vous voulez en obtenir deux des lignes distinctes pour chacune des dates min/max.