Selecionando grupos de registros consecutivos com um atributo comum?

Estou procurando uma consulta capaz de selecionar em uma única tabela de forma que registros consecutivos para os quais um atributo seja igual sejam recolhidos juntos. Semelhante ao agrupar por, mas em vez de agrupar todas as ocorrências do atributo, quero um grupo para cada intervalo consecutivo.

Tabela de exemplo:

+-----+-----+
|order|group|
+-----+-----+
|1    |aaa  |
+-----+-----+
|2    |aaa  |
+-----+-----+
|3    |bbb  |
+-----+-----+
|4    |aaa  |
+-----+-----+
|5    |aaa  |
+-----+-----+
|6    |aaa  |
+-----+-----+
|7    |ccc  |
+-----+-----+
|8    |aaa  |
+-----+-----+

Exemplo de resultado desejado:

+-----+-------------------+
|group|group_concat(order)|
+-----+-------------------+
|aaa  |1,2                |
+-----+-------------------+
|bbb  |3                  |
+-----+-------------------+
|aaa  |4,5,6              |
+-----+-------------------+
|ccc  |7                  |
+-----+-------------------+
|aaa  |8                  |
+-----+-------------------+

Não consigo usar procedimentos armazenados.

Tenho uma vaga noção de que precisarei de pelo menos um nível de aninhamento para classificar a tabela (provavelmente mais no total) e provavelmente precisará usar variáveis, mas não mais do que isso. Entre em contato se precisar de mais detalhes.

EDIT: consultas para criar exemplo:

create temporary table tab (
    ord int,
    grp varchar(8)
);

insert into tab (ord, grp) values
(1, 'aaa'),
(2, 'aaa'),
(3, 'bbb'),
(4, 'aaa'),
(5, 'aaa'),
(6, 'aaa'),
(7, 'ccc'),
(8, 'aaa');

questionAnswers(3)

yourAnswerToTheQuestion