Я пытаюсь решить эту проблему, используя Oracle SQL, но продолжаю получать эту ошибку -
ORA-00923: FROM keyword not found where expected
ссылка на проблему - https://leetcode.com/problems/department-top-three-salaries/submissions/
мое решение до сих пор - просто для запроса данных -
with temp as
(
select d.Name as Department,
e.Name as Employee,
e.Salary as Salary
from employee e
join department d
on e.DepartmentId = d.Id
)
select *
, rank() over (partition by department order by salary desc) as rr
from temp
, но если я просто запустите это, то оно будет работать нормально -
with temp as
(
select d.Name as Department,
e.Name as Employee,
e.Salary as Salary
from employee e
join department d
on e.DepartmentId = d.Id
)
select *
from temp
И если Я запускаю это, тогда он работает нормально -
select department, employee, salary
from
(
select A.* , dense_rank() over (partition by department order by salary desc) as rr
from
(
select d.Name as Department,
e.Name as Employee,
e.Salary as Salary
from employee e
join department d
on e.DepartmentId = d.Id
) A
) B
where rr <= 3
означает ли это, что я не могу использовать каскадные операторы with
в oracle?
Например, я не могу написать -
with temp as
(
select col1, col2 from table
)
, temp1 as
(
select *, "hello" as col3
from temp
)
select *
from temp1
в Oracle?