我想在Oracle 10g中執行下面的查詢,我們可以指定不在SELECT列表中的ORDER BY子句中的列。如何在使用GROUP BY和JOIN時使用ORDER BY與多列
select d.DEPARTMENT_ID, count(e.EMPLOYEE_ID)
from departments d, Employees e
where d.DEPARTMENT_ID = e.DEPARTMENT_ID
group by d.DEPARTMENT_ID
order by d.DEPARTMENT_ID, e.EMPLOYEE_ID;
但是,當我試圖執行上述查詢我得到下面的錯誤。
[Error] Execution (1: 169): ORA-00979: not a GROUP BY expression
當我從ORDER BY中刪除e.EMPLOYEE_ID然後查詢執行正常。
請幫助我確定上述查詢中的錯誤。任何幫助提前讚賞。
查詢似乎得到每個部門的員工總數,爲什麼需要通過'e.employee_id'來訂購,因爲結果只包含部門中的員工總數,沒有關於特定員工的信息等等 – Akash
是阿卡什你是對的。我們不需要通過使用employee_id來進行排序,但我正在嘗試找出ORDER BY子句中指定的列的限制條件。正如我們可以指定表中的任何列,即使它不在選擇列表中。何時需要允許不在選擇列表中的order by子句中的列?請提供解釋Oracle SQL查詢執行順序的任何資源,逐步處理表數據。謝謝。 – RaoPotla