Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Немного аналитики, туплю / 3 сообщений из 3, страница 1 из 1
12.07.2018, 21:11
    #39673371
feagor
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Немного аналитики, туплю
есть набор данных
Код: plsql
1.
2.
with t as (select level*20||'text' lvl,rownum rn from dual connect by level<=10)
SELECT t.* FROM t 


необходимо получить

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
20text	1
40text	1
60text	1
80text	1
100text	2
120text	3
140text	3
160text	3
180text	3
200text	3
т.е если мы нашли значение 100text, то проставить значение +1 для поля rn и сразу после того, как прошли еще раз +1
либо как-то запомнить rownum для значения 100text и потом просто делать sign(rn-запомненное значение)
...
Рейтинг: 0 / 0
12.07.2018, 21:15
    #39673373
feagor
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Немного аналитики, туплю
feagor,

крайне желательно за 1 проход по таблице
...
Рейтинг: 0 / 0
12.07.2018, 21:22
    #39673376
feagor
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Немного аналитики, туплю
feagor,

сообразил
Код: plsql
1.
2.
3.
with t as (select level*20||'text' lvl,rownum rn from dual connect by level<=10)
SELECT t.*,sign(rn-max(case when lvl = '100text' then rn else null end) over () )+2 rn2
 FROM t 


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
LVL	RN	RN2
20text	1	1
40text	2	1
60text	3	1
80text	4	1
100text	5	2
120text	6	3
140text	7	3
160text	8	3
180text	9	3
200text	10	3
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Немного аналитики, туплю / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]