各部門で最高2つの給与を取得しようとしていました。しかし、私はエラーが発生しています!助けてください、私は感謝します、ありがとう。ORA-00923:FROMキーワードが見つかりませんでした(部署別に最高2給与を取得してください)
CREATE TABLE emp_h ( Dept varchar(100), Emp varchar(100), Sal numeric(18,2))
値はこの表の下に挿入されます。
I出力(学部賢明トップ2最高給与は)Dept Emp Sal
----------------------------
Comp C 10000
Comp D 9000
Elec R 11000
Elec Q 10000
Eng AA 15000
Eng BB 7000
今、私は賢い最高2給与に各部門を取得するには、このクエリを実行したい
SELECT * FROM emp_h
DEPT EMP SAL
Comp A 6000
Comp B 7000
Comp C 10000
Comp D 9000
Elec P 2000
Elec Q 10000
Elec R 11000
Eng AA 15000
Eng BB 2000
Eng BB 7000
Eng BB 3000
:
SELECT * FROM(SELECT RANK() OVER (PARTITION BY DEPT ORDER BY SAL DESC) AS 'Rank', * FROM emp_h) AS A WHERE RANK <= 2
結果:
ORA-00923: FROM keyword not found where expected
00923. 00000 - "FROM keyword not found where expected"
*Cause:
*Action:
Error at Line: 25 Column: 61
あなたは 'rank()...'関数の後に '*'を使うことはできますか? – cowbert
そうだと思います。私の誤りを訂正してください。 –
'、*'を削除すると動作しますか?それがうまくいくなら、 'Rank'カラムの前に' * 'を使ってみてください。そうでなければ、emp_hの列を明示的に参照する必要があります。 – cowbert