Можете да използвате следната заявка:
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
Горната заявка използва променливи, за да идентифицира острови от последователни записи със същия browser
стойност. Връща един ред на браузър. Трябва да повторите една и съща подзаявка два пъти и да използвате UNION
ако искате да получите два отделни редове за всяка от мин./максималните дати.