powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Нумерация строк через повторение значение
9 сообщений из 9, страница 1 из 1
Нумерация строк через повторение значение
    #39513180
pixel_d
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день!

Очень надеюсь на помощь сообщества.

Имеется таблица (см. рисунок).
Необходимо добавить нумерацию таким образом, чтобы "блоки" столбца stage нумеровались порядковым номером блока, а после появления null в stage нумерация увеличивалась на 1. При этом можно пренебречь значением в строке где stage is null.

Планируется потом сделать группировку по полю num для подсчёта кол-ва блоков.
...
Рейтинг: 0 / 0
Нумерация строк через повторение значение
    #39513184
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
STFF start_of_group
...
Рейтинг: 0 / 0
Нумерация строк через повторение значение
    #39513569
pixel_d
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Elic
честно говоря в полной мере не понял значения STFF start_of_group, но при поиске наткнулся на интересный топик: http://www.sql.ru/forum/648559/oracle-10i-pomogite-s-gruppirovkoy

там нашел строчку:
sum(case when g_key <> next_key then 1 else 0 end) over (order by id) as rank_key as rank_key
где g_key по моей задаче соответствует stage, а next_key - lag(stage,1,stage)

В итоге получается счетчик, который обновляется каждый раз когда g_key и next_key не совпадают.


В любом случае спасибо вам!
Мой вопрос решен.
...
Рейтинг: 0 / 0
Нумерация строк через повторение значение
    #39513601
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pixel_dв полной мере не понял значения STFF STFF
...
Рейтинг: 0 / 0
Нумерация строк через повторение значение
    #39513718
MaximaXXL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pixel_d,

В полной мере не понял условия задачи, что делать если старт с null, что делать если 2 подряд null, почему именно так расположились reqid ... но вроде Ваш результат
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
with t(reqid, stage) as (
select '15321' , 'start' from dual union all
select '15419' , 'start' from dual union all
select '15537' , null    from dual union all
select '16986' , 'start' from dual union all
select '17051' , 'start' from dual union all
select '17223' , null    from dual union all
select '13856' , 'start' from dual union all
select '13964' , 'start' from dual union all
select '20188' , 'start' from dual union all
select '20347' , null    from dual union all
select '20827' , 'start' from dual union all
select '20988' , 'start' from dual union all
select '20990' , 'start' from dual union all
select '22045' , null    from dual)

select reqid, stage, nvl2(stage, 1 + Sum(decode(Stage, null, 1,0)) over (order by rn), null) num_
from (select reqid, stage, rownum rn from t)
...
Рейтинг: 0 / 0
Нумерация строк через повторение значение
    #39514944
pixel_d
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MaximaXXL,

да, решение идеально подошло!

СПАСИБО!
...
Рейтинг: 0 / 0
Нумерация строк через повторение значение
    #39514954
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pixel_dMaximaXXL,

да, решение идеально подошло!Rownum - это практически случайная величина. Тебе подложили медвежью услугу.
...
Рейтинг: 0 / 0
Нумерация строк через повторение значение
    #39514995
MaximaXXL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ElicRownum - это практически случайная величина. Тебе подложили медвежью услугу.

т.к. я не знал по какому полю идет сортировка чтоб выставить именно в таком порядке данные я использовал Rownum и описал это в коментарии к селекту "почему именно так расположились reqid"
...
Рейтинг: 0 / 0
Нумерация строк через повторение значение
    #39515037
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MaximaXXLт.к. я не знал по какому полю идет сортировка чтоб выставить именно в таком порядке данные я использовал Rownum и описал это в коментарии к селекту "почему именно так расположились reqid"Ты плохо заострил внимание - вышла медвежья услуга. Не уподобляйся Stax-у.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Нумерация строк через повторение значение
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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