Ваш запрос возвращает только 1 строку из-за условия:
WHERE Name='Ram'
Таким образом, вы всегда получите 1 как результат.
Выберите номер строки из подзапроса с помощью RANK()
для обработки связей для зарплат и используйте DESC
для сортировки по убыванию зарплат:
SELECT t.RowNum FROM (
SELECT Name, RANK() OVER (ORDER BY Salary DESC) RowNum
FROM Employee
) t
WHERE t.Name='Ram';
Еще прощеа может и более эффективное решение без оконных функций:
SELECT COUNT(*) + 1 RowNum
FROM Employee
WHERE Salary > (SELECT Salary FROM Employee WHERE Name='Ram');