2017-11-13 2 views
0

저는 SQL 프로그래밍에 익숙하지 않고 질문에 문제가 있습니다.MySQL : 직원 수를 계산하십시오.

나는 직원 수가 가장 많은 부서를 찾아야하며, 어떻게해야할지 모르겠다. 내가 사용할 수 있습니다

표는 내가 최종 결과는 열이 것이라고 생각

here

있으며, Department_no 및 최대 (카운트 (Department_no))하지만 난이 얻을 거라고 확실하지 않아요 ? 아니면 내가 보지 못하는 간단한 방법이 있습니까?

편집은 지금까지 나는

SELECT Department_no, Count(Department_no) FROM ManagerOrBoss GROUP BY Department_no;

을하지만 이상적으로 카운트 최대 값을 찾으려하지만, SQL은 '그룹 기능 오류의 잘못된 사용'을주고 유지합니다.

+0

부서 테이블이 있습니까 ?? – Rams

+0

아니요, 테이블을 제 3의 정규형으로 만들어야했습니다. (나는 올바르게했기 때문에) 비 필수 테이블이라고 생각했습니다. – Grantairible

+0

https://meta.stackoverflow.com/questions/333952/why-should-i-provide-an-mcve-for-what-seems-to-me-to-be-a-very-simple-sql- 쿼리 – Strawberry

답변

1

다음 쿼리를 사용하면 더 높은 번호를 가진 부서를 얻을 수 있습니다. 그들은 모두 직원의 동일 최대 수를 경우 직원의 쿼리 위

select a.Department_no ,count(a.Staff_id) maxstaffa 
from table a 
cross join (
    select count(Staff_id) maxstaffb 
    from table 
    group by Department_no 
    order by maxstaffb desc 
    limit 1 
) b 
group by a.Department_no 
having maxstaffa = b.maxstaffb 

주 이상의 부서를 반환 할 수 있습니다

2
아래 그림과 같이 당신은 쿼리에서 GROUP BY 절과 계산 사용할 수 있습니다

select Department_no, count(Staff_id) from ManagerOrBoss 
group by department_no 
order by count(staff_id) limit 1 
+0

직원 수가 같은 두 부서가 있다면 어떻게해야합니까? –

+0

@MKhalidJunaid 사용자는 최대 수를 갖는 부서를 얻는 방법을 알고 싶었습니다. 직원 수 어쨌든 직원 수가 최대 인 부서를 지적 해 주셔서 감사합니다. +1 – userDee

0

좀 더 데이터베이스 경사 사람들이 아주 좋은 생각입니다 이유를 알 수 있습니다,하지만 난 뭔가 리터를 할 것 구성원의 가장 높은 번호의 DEPARTMENT = (들)을 얻을 수 이케 :

SELECT Department_no, COUNT(Staff_id) TheCount 
FROM ManagerOrBoss 
GROUP BY Department_no 
HAVING TheCount = (
    SELECT MAX(Num) 
    FROM (
     SELECT Department_no, COUNT(Staff_id) Num 
     FROM ManagerOrBoss 
     GROUP BY Department_no 
    ) as A 
) 

사과 내 구문이 조금 떨어져 인 경우. 나는 보통 MSSQL에서 일하지만, 이것을 MySQL에 적용하려고 시도했다.

관련 문제