powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Скозная нумерация
10 сообщений из 10, страница 1 из 1
Скозная нумерация
    #39732394
Martini45
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите как делать сквозную нумерацию с пропуском строк, что-то вообще не доходит
...
Рейтинг: 0 / 0
Скозная нумерация
    #39732399
Фотография Vadim Lejnin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Martini45,
Студентам, желающим помощи

http://www.bugtraq.ru/forum/faq/general/smart-questions.html] Как правильно задавать вопросы

Мессир
1) Внятная постановка задачи, отчет в чем? инструмент то какой?
2) что хочешь получить
3) как пытался решить задачу
4) тестовые данные, в таком виде:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
with mytable(id,fio) as (
select 1,'Ремарк, Эрих, Мария' from dual union all
select 2,'Фернандес, Перес, Владимир, Кастулович' from dual union all
select 3,'Хосуэ, Гонсалес, де Леон' from dual union all
select 4,'Карам, Абу, Иль, Хатаб' from dual
)
select id,fio from tytable;




p.s. Используй ТЭГ SRC для оформления
...
Рейтинг: 0 / 0
Скозная нумерация
    #39732400
mibin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Martini45,

Можно использовать DENS_RANK в связке в CASE.
https://kbss.ru/blog/oracledb/277.html
...
Рейтинг: 0 / 0
Скозная нумерация
    #39732402
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plsql
1.
select .. from (select .. row_number() .. union all select ... group by) order by...


или поиграться с grouping sets
...
Рейтинг: 0 / 0
Скозная нумерация
    #39732409
Vint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
env,
grouping sets шняга которая никогда никому не нужна. поэтому ее не учат и вообще проще cube`ом сделать + извраты навернуть..... плюс потом смело и лихо решать проблемы производительности)))
...
Рейтинг: 0 / 0
Скозная нумерация
    #39732413
Martini45
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Vadim Lejnin,

Я сделал последние 3 столбца, через case и rollup
Основная проблема в сквозной нумерации, так, чтобы пропустить строчки некоторые, но чтоб нумерация продолжилась.
...
Рейтинг: 0 / 0
Скозная нумерация
    #39732416
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Martini45Основная проблема в сквозной нумерацииrownum
...
Рейтинг: 0 / 0
Скозная нумерация
    #39732417
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не люблю группинг сетс и роллап по причине занудного определения, где какой уровень, когда их больше одного

предлагаю идти через юнион алл как в примере env - там все просто


если нужен роллап -
Код: plsql
1.
2.
3.
4.
5.
case when case when этоГруппа
   then null
   else 
      row_number() over(order by case when этоГруппа then 1 else 0 end, отдел, ФИО)
end
...
Рейтинг: 0 / 0
Скозная нумерация
    #39732436
Алымов Анатолий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Martini45Vadim Lejnin,

Я сделал последние 3 столбца, через case и rollup
Основная проблема в сквозной нумерации, так, чтобы пропустить строчки некоторые, но чтоб нумерация продолжилась.
Сначала пронумеруй select .. row_number(), потом сверху запросом уже rollup наворачивай
...
Рейтинг: 0 / 0
Скозная нумерация
    #39732444
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
with t(dep_id, dep_nm, emp_nm) as (select 10, 'Administration', 'Clark Kent'
from dual union all select 110, 'Accounting', 'William Gietz'
from dual union all select 110, 'Accounting', 'Sheley Higgins'
from dual)
select n# as "Номер п/п"
     , case grouping_id(dep_id,emp_nm)
         when 0 then ''||dep_id
         when 1 then 'Количество сотрудников в отделе'
         else 'Общее количество сотрудников'
       end as "Идентификатор отдела"
     , dep_nm as "Название отдела"
     , case grouping_id(emp_nm)
         when 0 then emp_nm
         else ''||count(*)
       end as "Сотрудник"
  from (select row_number() over(order by dep_nm, emp_nm) n#, t.* from t)
 group by rollup((dep_id, dep_nm), (n#, emp_nm))
 order by dep_nm nulls last, n# nulls last
;
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Скозная нумерация
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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