Если вам нужно выбрать всех сотрудников со вторым окладом, используйте фильтр
dense_rank() over(partition by department order by salary desc) = 2
.Он вернет всех сотрудников со вторым окладом.
Когда в отделе есть только 1 запись (второго оклада нет, один сотрудник в отделе), он будет оценен как 1, и вы не получите никаких записей об этомфильтрация отделов по параметру dens_rank = 2.
Если вам нужно выбрать только одну запись (не всех сотрудников) со вторым окладом, то будет работать row_number() over(partition by department order by salary desc) = 2
, но при случайном выборе будет выбран один случайный сотрудник со вторым окладом.сотрудники со второй зарплатой.Только одна запись будет помечена row_number = 2.