Есть таблица:
With data as (
Select 1 as groupid, 34 as value, 1 as ord from dual
Union all
Select 1 as groupid, 43 as value, 2 as ord from dual
Union all
Select 1 as groupid, 31 as value, 3 as ord from dual
Union all
Select 1 as groupid, 42 as value, 4 as ord from dual
Union all
Select 1 as groupid, 55 as value, 5 as ord from dual
Union all
Select 1 as groupid, 700 as value, 6 as ord from dual
Union all
Select 1 as groupid, 6 as value, 7 as ord from dual
Union all
Select 2 as groupid, 85 as value, 1 as ord from dual
Union all
Select 2 as groupid, 43 as value, 2 as ord from dual
Union all
Select 2 as groupid, 95 as value, 3 as ord from dual
Union all
Select 3 as groupid, 195 as value, 1 as ord from dual
)
Select * from data
| GROUPID | VALUE | ORD | | 1 | 34 | 1 | | 1 | 43 | 2 | | 1 | 31 | 3 | | 1 | 42 | 4 | | 1 | 55 | 5 | | 1 | 700 | 6 | | 1 | 6 | 7 | | 2 | 85 | 1 | | 2 | 43 | 2 | | 2 | 95 | 3 | | 3 | 195 | 1 |
|
ord - order, то есть порядок сортировки.
Как можно одним селектом вытащить цифры в одной группе идущие по порядку по возрастанию, причем возрастать должны минимум 3 числа в поле VALUE?
То есть в результате должно получиться
| GROUPID | VALUE | ORD | | 1 | 31 | 3 | | 1 | 42 | 4 | | 1 | 55 | 5 | | 1 | 700 | 6 |
|
[b][/b]