2017-05-23 78 views
0

我有一個部門內選擇上述平均工資查詢如何使用PL/SQL來模擬相關子查詢?

SELECT employee_id, first_name|| ' ' ||last_name as Name, salary, department_id 
FROM EMPLOYEES o 
WHERE SALARY > 
    (SELECT AVG(salary) FROM EMPLOYEES i 
    WHERE i.department_id=o.department_id); 

我怎麼能改寫PLSQL此查詢,而無需使用一個子查詢?

+0

爲什麼你需要在PL/SQL中重寫它? –

+0

嗨,我是一個no͞ob學習PL/SQL。我正在尋找如何將我理解的語法轉換爲我想要理解的語法的明確說明。 – ajkc

+0

假設沒有數百萬個部門,我首先將所有部門的平均數加載到數組中,然後對遊標FOR循環的每一行進行簡單的過程查找。 (這是如果我真的必須循環做。) –

回答

0

我不知道你是否想要這些代碼,但首先,我告訴你需要執行該操作的步驟。

- Create a cursor for the main query 
- Create a loop to navigate that cursor 
- Execute the select avg and save the result in a variable. 
- Make an IF to compare 
- Output/save the result