2012-11-08 67 views
0

當我運行此查詢:這個Oracle SELECT命令有什麼問題?

(SELECT MAX(
    SELECT 
    COUNT(e4.employee_id) 
    FROM 
    employees e4, 
    departments d2 
    WHERE 
    d2.manager_id = e3.employee_id AND 
    e4.department_id = d2.department_id 
) 
FROM 
    employees e3 
) 

我得到了一個ORA-00936:缺少表達式。我不知道哪裏錯了。

+2

Ummmm .....子查詢返回一個數字,因此渲染外部'max()'查詢是多餘的。 – 2012-11-08 23:53:21

+0

內部的SELECT有一個COUNT,但沒有GROUP BY ... –

+1

@RobbieDee他們不需要一個組,只有一個字段,它有一個功能。 – Jesse

回答

1

我的朋友告訴我如何改變這個查詢。我的查詢正在嘗試返回一位經理擁有的最大員工數量。

我在SQL新我寫長的查詢:) 正確的是:

SELECT 
    MAX(counter) 
FROM 
(SELECT 
    COUNT(*) AS counter 
FROM 
    employees e 
    GROUP BY 
    e.manager_id) 
+0

該解決方案比需要的更復雜。看看我的答案。 –

1

一個簡單的辦法:

SELECT 
    MAX(COUNT(*)) 
FROM 
    employees 
GROUP BY 
    manager_id