Я хочу вставить в таблицу с данными столбца в разрыве 1000 - PullRequest
0 голосов
/ 08 апреля 2020

У меня есть таблица с данными типа: enter image description here

Теперь я хочу вставить данные в новую таблицу, но с div_number с пробелами 1000. как 0,1000 , 2000,3000 et c:

Если в таблице есть существующие данные, то мне нужно добавить дополнительные блоки с большим размером блока. enter image description here

Но, когда я запрашиваю данные из таблицы, я получил разрыв более 1000, потому что предположим, что между 3000-4000 нет доступных данных. и блок не создан для этого. enter image description here

Как получить желаемый результат из выбранной таблицы? Может кто-нибудь, пожалуйста, помогите мне с запросом?

1 Ответ

0 голосов
/ 08 апреля 2020

DIV_NUMB значения должны быть совершенно новые , они не имеют ничего общего с тем, что вы хотите получить.

Если вы знаете , что вы хотите начать с 2000, то

SQL> select 1000 + 1000 * row_number() over (order by t.datum, t.div_numb) div_numb,
  2    t.datum
  3  from test t
  4  order by t.datum, t.div_numb;

  DIV_NUMB DATUM
---------- ----------
      2000 01.04.2020
      3000 01.04.2020
      4000 01.04.2020
      5000 08.04.2020

SQL>

Если начальная точка должна быть рассчитана, то она становится более сложной, например,

SQL> with mdn (div_numb, gap) as
  2    (select (trunc(min(div_numb) / 1000) * 1000) - 1000,
  3            1000
  4     from test)
  5  select
  6    (m.div_numb * row_number() over (order by t.datum, t.div_numb)) + m.gap div_Numb,
  7    t.datum
  8  from mdn m cross join test t;

  DIV_NUMB DATUM
---------- ----------
      2000 01.04.2020
      3000 01.04.2020
      4000 01.04.2020
      5000 08.04.2020

SQL>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...