簡體   English   中英

計數和分組不按預期工作

[英]Count and group by not working as expected

select count(*),manager_id
from departments
group by manager_id;

這是我的想法,但這給了我每個經理的員工數量

我懷疑您從錯誤的表中進行選擇,邏輯似乎正確,但是您從表中的departments進行選擇的事實有點可疑。

你有員工表嗎? 它是否包含manager_id列? 如果是這樣的話:

select count(*),manager_id
from employees
group by manager_id;

如果employee表僅具有department_id列,則:

SELECT d.manager_id,count(*)
FROM employees e
INNER JOIN departments d
 ON(e.department_id = d.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 

注意第一行,經理為NULL-即有一個雇員沒有經理。

我還同時使用了count(*)count(distinct EMPLOYEE_ID) 這與該表無關,其中EMPLOYEE_ID為PK,但通常情況下,前者返回記錄數,后者返回雇員數 (可以更低)。

我也遇到過你的類似問題。 嘗試在計數內添加要計數的id,即employeeid 如果之后仍然無法使用,請嘗試在分組依據中添加相同的ID。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM