Я хочу получить последовательность столбцов типов, имеющих длину больше единицы для разных идентификаторов.Выберите последовательные записи столбцов, а также найдите самую длинную последовательность
таблица создается следующим образом
id | type
----+------
1 | E1
1 | E1
2 | A3
3 | B2
1 | A1
4 | C1
5 | C
7 | D
8 | D
9 | A1
3 | D
(11 rows)
Вот что я пытаюсь достичь первого:
id | type
1 | E1
1 | E1
1 | A1
3 | B2
3 | D
Результат выше, что я должен получить с последовательностью типов E1,E1,A1
для идентификатора 1 и B2,D
для идентификатора 3.
Я пробовал это, что, несомненно, является ошибочным:
select q1.id, q1.type
from
(select row_number() over() as rowno, * from recs) q1,
(select row_number() over() as rowno, * from recs) q2
where q1.rowno > q2.rowno and q1.id = q2.id;`
Это дает мне что-то вроде:
id | type
----+------
1 | E1
1 | A1
1 | A1
3 | D
(4 rows)
После этого я хочу найти самую длинную последовательность.
См. Также: [Se наиболее длинная непрерывная последовательность] (http://dba.stackexchange.com/q/35380/3684). Ваш случай - «более простая альтернатива». –