Můžete použít následující dotaz:
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
Výše uvedený dotaz používá proměnné k identifikaci ostrovů po sobě jdoucích záznamů, které mají stejný browser
hodnota. Vrátí jeden řádek na prohlížeč. Musíte dvakrát zopakovat stejný dílčí dotaz a použít UNION
pokud chcete získat dva samostatné řádky pro každé z minimálních/maximálních dat.