-1

各部門の上位 3 つの最大給与を取得しようとしていますが、q.salary のコードの最後に次のエラーが表示されます: ORA-00904: "Q"."SALARY": 無効な識別子

ここに私のコードがあります

with query as (
   select max(salary), department_id 
   from employees 
   group by department_id
)
SELECT ROWNUM as RANK, 
       e.last_name, 
       e.salary
FROM (
   select department_id, salary
   from employees e, 
        query q 
   where e.salary = q.salary
)
where rownums <=3

前もって感謝します

4

2 に答える 2

1

列式 max(salary) のエイリアスを作成する必要があります ...

select max(salary) max_salary ...

...その後、それを max_salary として参照します。

また、「rownums」は「rownum」である必要があります。

于 2013-05-12T11:40:39.903 に答える
1

集約に名前を付ける必要があります。

select max(salary) as salary, 
       department_id 
from employees group by department_id
于 2013-05-12T11:40:49.643 に答える