Możesz użyć następującego zapytania:
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
Powyższe zapytanie używa zmiennych w celu zidentyfikowania wysp kolejnych rekordów mających tę samą browser
wartość. Zwraca jeden wiersz na przeglądarkę. Musisz dwukrotnie powtórzyć to samo podzapytanie i użyć UNION
jeśli chcesz dostać dwa oddzielne wiersze dla każdej z dat min/maks.