select count(*),manager_id
from departments
group by manager_id;
這是我如何的想法,但它dosent給我的員工數量爲每位經理計數和group by無法按預期工作
select count(*),manager_id
from departments
group by manager_id;
這是我如何的想法,但它dosent給我的員工數量爲每位經理計數和group by無法按預期工作
我懷疑你是從錯誤表中選擇,邏輯似乎是正確的,但事實上,你從表中選擇電話departments
是有點可疑。
你有僱員表嗎?它是否包含manager_id
列?如果是這樣的:
select count(*),manager_id
from employees
group by manager_id;
如果員工表有那麼只有department_id
柱:
SELECT d.manager_id,count(*)
FROM employees e
INNER JOIN departments d
ON(e.department_id = d.id)
在upvote之後,我添加如果存在管理者表格,您可以使用具有多個鏈接員工的子查詢來查詢該表格,因此如果管理員沒有員工,你會得到零信息。 –
我同意有些情況下應該完成,你也可以從'departments'查詢'manager_id',並將其加入'employees',但是我非常懷疑沒有至少一名員工的經理是可能的在他之下.. @JoeTaras – sagi
我已經面對你的一個類似的問題。 嘗試在計數中添加您正在計數的ID,即employeeid。 如果在嘗試在組中添加相同的ID之後它仍然不起作用。
HR模式
select MANAGER_ID, count(*), count(distinct EMPLOYEE_ID)
from HR.EMPLOYEES
group by MANAGER_ID
order by 1 nulls first;
使用樣本表給出
MANAGER_ID COUNT(*) COUNT(DISTINCTEMPLOYEE_ID)
---------- ---------- --------------------------
1 1
100 14 14
101 5 5
102 1 1
注第一排,與經理IS NULL - 即有沒有一個經理一個員工。
不僅如此,我同時使用count(*)
和count(distinct EMPLOYEE_ID)
。這與這張表無關,其中EMPLOYEE_ID
是PK,但一般情況下前者返回記錄數後者僱員數(可以更低)。
顯示您的相關表格模式(departemets和僱員) – scaisEdge