Sie können die folgende Abfrage verwenden:
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
Die obige Abfrage verwendet Variablen, um Inseln aufeinanderfolgender Datensätze mit demselben browser
zu identifizieren Wert. Es gibt eine einzelne Zeile pro Browser zurück. Sie müssen dieselbe Unterabfrage zweimal wiederholen und UNION
verwenden wenn Sie zwei bekommen möchten separate Zeilen für jedes der min./max. Daten.