2014-12-12 3 views
-1

department_id, 각 부서의 직원 수, 각 부서/모든 직원의 직원 합계를 확인합니다. 그러나단일 그룹이 아닙니까? oracle sql

select department_id,em_count,emp_count/sum(emp_count) dep_precentage 
from 
(SELECT department_id, count(*)emp_count 
FROM employees 
group by department_id); 

, 그것은 당신이 내가 그것을 해결하기 위해 도와주세요 단일 group.Can 아니었다 보여줍니다

이 내 대답입니까? 감사합니다.

+0

'GROUP BY'를 내부 선택 외부로 가져 가려고 시도하십시오. – Ascalonian

+0

무엇을하려고합니까? emp_count/sum (emp_count)은 항상 1 ... – road242

+0

예, 발견했습니다. 각 부서/모든 직원의 직원 합계를 원합니다. 그러면 내가 어떻게 할 수 있니? – tommyling

답변

1

그룹에 의해 추가 +없는 키워드로 몇 가지가 있습니다,이 시도 :

SELECT department_id, 
    em_count, 
    emp_count/SUM(emp_count) AS dep_precentage 
FROM 
    (SELECT department_id, 
    COUNT(*)  AS emp_count 
    FROM employees 
    GROUP BY department_id 
) GROUP BY department_id , em_count 
+2

'AS'는 열 별칭에 대해 선택적입니다. – Allan

+0

맞습니다 :) – road242

0

분석적/윈도우 함수로 SUM()를 사용하는 것이 더 간단 할 수 있습니다

SELECT department_id, emp_count, emp_count/SUM(emp_count) OVER() AS dep_percentage 
    FROM (
    SELECT department_id, COUNT(*) AS emp_count FROM employees 
    GROUP BY department_id 
) 

당신이 피할 그 방법 두 번째 GROUP BY.

관련 문제