Oracle row number: Oracle ROW_NUMBER Function by Practical Examples

sql — функция row_number() в оракуле

Задавать вопрос

спросил

Изменено
3 года, 8 месяцев назад

Просмотрено
2к раз

Я использую функцию ROW_NUMBER в оракуле и пытаюсь понять, как она будет вести себя, когда предложение section by и order by содержит те же данные, что и ранжирование (если есть повторяющиеся записи).

ниже пример набора данных

 выберите * из теста
 

Результат

 Дата создания зарплаты отдела
HR 500 25 июля
HR 200 25 июля
HR 500 26 июля
Счета 300 25 января
Счета 300 26 января
Счета 300 27 января
 

я запустил функцию row_number на основе вышеуказанного набора

 выберите *, ROW_NUMBER() OVER (раздел по порядку отдела по зарплате) как row_number
из теста
 

результат

 Зарплата отдела Дата создания row_number
HR 500 25 – 1 июля
HR 200 25 – 1 июля
HR 500 26 – 2 июля
Счета 300 25-1 января
Счета 300 26-2 января
Счета 300 27-3 января
 

Как вы можете видеть вывод выше, я использую отдел как раздел и зарплату как порядок для row_number, это дало мне рейтинг 1,2,3.
Я пытаюсь понять, что для одних и тех же данных в разделе by и order by oracle назначает row_number на основе того, когда запись введена в систему, как в приведенном выше «Учетных записях» «300», он дал row_number 1 для запись, введенная раньше всех в системе «25 января»

где-либо четко указано, что если выполняется разделение и упорядочение одних и тех же данных, то ранжирование будет выполняться на основе того, когда эти записи были введены в систему.

  • sql
  • оракул
  • оконные функции
  • номер строки

8

Я пытаюсь понять, что для одних и тех же данных в разделе by и order by oracle назначает row_number на основе того, когда запись введена в систему, как в приведенном выше «Учетные записи» «300»

Нет, это не так. Таблицы SQL представляют неупорядоченный набор из . Порядок отсутствует, если только он не указан явно путем ссылки на значения столбца.