У меня есть таблица, которая выглядит примерно так:
+----------+-------+
| position | group |
+----------+-------+
| 1 | a |
+----------+-------+
| 5 | b |
+----------+-------+
| 6 | b |
+----------+-------+
| 7 | c |
+----------+-------+
| 8 | b |
+----------+-------+
Я хочу SELECT
комбинаций строк, которые имеют смежные позиции в одной группе. Например, учитывая приведенную выше таблицу, результат запроса должен быть:
+----------+-------+
| position | group |
+----------+-------+
| 5 | b |
+----------+-------+
| 6 | b |
+----------+-------+
Производительность является проблемой, потому что в таблице 1,5 миллиарда строк, но положение и группа индексируются, поэтому она относительно быстрая. Любые предложения о том, как написать этот запрос? Я не уверен, с чего начать, потому что я не знаю, как написать оператор WHERE
, который включает несколько строк вывода.