Agrupando linhas semelhantes próximas uma da outra no MySQL

Eu não tenho idéia de como explicar isso bem, então por favor, tenha paciência comigo.

Estou tentando agrupar linhas semelhantes próximas umas das outras, ignorando essencialmente a n + 1ª linha, se for a mesma. Não tenho certeza se isso é fácil de fazer no MySQL ou não. Essas linhas não compartilham nenhum outro atributo além da descrição. Se houver outras "descrições" duplicadas que NÃO estão próximas uma da outra, eu ainda quero que elas sejam devolvidas.

Eu tenho uma tabela cheia de entradas semelhantes a esta:

+--+-------------------------+
|id|description              |
+--+-------------------------+
| 1|hello                    |
+--+-------------------------+
| 2|foobar                   |  \_   Condense these into one row
+--+-------------------------+  /
| 3|foobar                   |
+--+-------------------------+
| 4|hello                    |
+--+-------------------------+
| 5|world                    |  \__   Condense these into a row
+--+-------------------------+  /
| 6|world                    |
+--+-------------------------+
| 7|puppies                  |
+--+-------------------------+
| 8|kittens                  |  \__   These too...
+--+-------------------------+  /
| 9|kittens                  |
+--+-------------------------+
|10|sloths                   |
+--+-------------------------+
|11|kittens                  |
+--+-------------------------+

questionAnswers(1)

yourAnswerToTheQuestion