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 представляют неупорядоченный набор из . Порядок отсутствует, если только он не указан явно путем ссылки на значения столбца.