Anda dapat menggunakan kueri berikut:
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
Kueri di atas menggunakan variabel, untuk mengidentifikasi pulau dari catatan berurutan yang memiliki browser
yang sama nilai. Ini mengembalikan satu baris per browser. Anda harus mengulang subquery yang sama dua kali dan menggunakan UNION
jika Anda ingin mendapatkan dua baris terpisah untuk setiap tanggal min/maks.