Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Скозная нумерация / 10 сообщений из 10, страница 1 из 1
13.11.2018, 13:20
    #39732394
Martini45
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скозная нумерация
Подскажите как делать сквозную нумерацию с пропуском строк, что-то вообще не доходит
...
Рейтинг: 0 / 0
13.11.2018, 13:22
    #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
13.11.2018, 13:24
    #39732400
mibin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скозная нумерация
Martini45,

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


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

Я сделал последние 3 столбца, через case и rollup
Основная проблема в сквозной нумерации, так, чтобы пропустить строчки некоторые, но чтоб нумерация продолжилась.
...
Рейтинг: 0 / 0
13.11.2018, 13:46
    #39732416
-2-
-2-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скозная нумерация
Martini45Основная проблема в сквозной нумерацииrownum
...
Рейтинг: 0 / 0
13.11.2018, 13:47
    #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
13.11.2018, 14:10
    #39732436
Алымов Анатолий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скозная нумерация
Martini45Vadim Lejnin,

Я сделал последние 3 столбца, через case и rollup
Основная проблема в сквозной нумерации, так, чтобы пропустить строчки некоторые, но чтоб нумерация продолжилась.
Сначала пронумеруй select .. row_number(), потом сверху запросом уже rollup наворачивай
...
Рейтинг: 0 / 0
13.11.2018, 14:24
    #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
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Скозная нумерация / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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