티스토리 뷰





-- 전체 직원의 인원 수와 급여 합계와 평균을 출력
SELECT COUNT(FIRST_NAME) as "인원 수", SUM(SALARY) as "급여 합계", avg(SALARY) as "급여 평균"
FROM EMPLOYEES;


-- 부서 코드가 100번인 직원의 수, 급여 합계, 평균 급여 조회
SELECT COUNT(FIRST_NAME) "직원 수", SUM(SALARY) "급여 합", AVG(SALARY) "평균 급여"
FROM EMPLOYEES
WHERE DEPARTMENT_ID = 100;


--부서 코드가 100인 직원의 급여 중 최대 급여외 최소 급여는 얼마인가?
SELECT MAX(SALARY) as "최대 급여", MIN(SALARY) as "최소 급여"
FROM EMPLOYEES
WHERE DEPARTMENT_ID = 100;


--부서별 급여의 총액을 부서코드와 함께 출력(group by)
SELECT DEPARTMENT_ID as "부서 코드", COUNT(DEPARTMENT_ID) as "사원 수", SUM(SALARY) as "급여 합계"
FROM EMPLOYEES
GROUP BY DEPARTMENT_ID;


-- 각 매니저가 관리하는 인원 수를 매니저 아이디와 함께 출력
SELECT MANAGER_ID as "매니저 ID", COUNT(NVL(MANAGER_ID, 0)) as "관리하는 인원 수"
FROM EMPLOYEES
GROUP BY manager_id;


-- 급여가 7000원 이상인 직원들의 인원 수를 부서별로 부서 코드와 함께 출력하시오
SELECT COUNT(FIRST_NAME) as "직원 수", DEPARTMENT_ID as "부서 코드"
FROM EMPLOYEES
WHERE SALARY >= 7000
GROUP BY DEPARTMENT_ID;


-- 각 부서별 급여의 평균이 7000 이상인 부서의 아이디와 평균을 출력
SELECT DEPARTMENT_ID as "부서의 아이디", AVG(NVL(SALARY, 0)) as "평균"
FROM EMPLOYEES
GROUP BY department_id
HAVING AVG(NVL(salary, 0)) >= 7000;



-- 입사년이 2004년인 사원들의 평균 급여를 부서별로 출력
SELECT AVG(nvl(SALARY, 0)) as "평균 급여", DEPARTMENT_ID as "부서 코드"
FROM EMPLOYEES
WHERE TO_CHAR(HIRE_DATE, 'yyyy') = '2004'
GROUP BY DEPARTMENT_ID;


-- 부서별 인원 수와 급여의 합계를 출력하되, 매니저별 소계와 함께 출력
SELECT DEPARTMENT_ID as "부서 이름", MANAGER_ID as "매니저 아이디", COUNT(DEPARTMENT_ID) as "부서별 인원 수", SUM(SALARY) as "급여의 합계"
FROM EMPLOYEES
GROUP BY ROLLUP(DEPARTMENT_ID, MANAGER_ID);


-- 부서별, 업무별(JOB) 인원 수, 급여의 평균을 소계, 총계를 출력
SELECT DEPARTMENT_ID as "부서", JOB_ID as "직무", COUNT(FIRST_NAME) as "인원 수", AVG(NVL(SALARY, 0)) as "평균"
FROM EMPLOYEES
GROUP by CUBE(DEPARTMENT_ID, JOB_ID)
ORDER by department_id, job_id;





댓글