My Programing/DataBase
오라클 관련 문제를 내봤습니다.
nkdk
2008. 3. 7. 19:45
문1) 직급별 급여의 평균 (NULL인 직급 제외)
select SAWON_JIK, AVG(SAWON_PAY) FROM SAWON WHERE SAWON_JIK IS NOT NULL GROUP BY SAWON_JIK;
문2) 부장,과장에 대해 직급별 급여의 총합 (NULL인 직급 제외)
SELECT SAWON_JIK, SUM(SAWON_PAY) FROM SAWON WHERE SAWON_JIK IN('부장','과장') AND SAWON_JIK IS NOT NULL GROUP BY SAWON_JIK;
문3) 2003년 이전에 입사한 자료 중 년도별 직원수 출력
SELECT TO_CHAR(SAWON_IBSAIL, 'YYYY'), COUNT(SAWON_IBSAIL) FROM SAWON WHERE SAWON_IBSAIL < '2003-1-1' GROUP BY TO_CHAR(SAWON_IBSAIL, 'YYYY');
문4) 직급별 성별 인원수, 급여합 출력 (NULL인 직급은 임시직으로 표현)
SELECT NVL(SAWON_JIK, '임시직'), SAWON_SEX, COUNT(NVL(SAWON_JIK,0)), SUM(NVL(SAWON_PAY,0)) FROM SAWON GROUP BY SAWON_JIK, SAWON_SEX;
문5) 부서번호 10,20에 대한 부서별 급여 합 출력
SELECT BUSER_NUM, SUM(SAWON_PAY) FROM SAWON WHERE BUSER_NUM IN(10,20) GROUP BY BUSER_NUM;
문6) 급여의 총합이 7000 이상인 직급 출력(NULL인 직급은 임시직으로 표현)
SELECT NVL(SAWON_JIK, '임시직'), SUM(SAWON_PAY) FROM SAWON GROUP BY SAWON_JIK HAVING SUM(SAWON_PAY) >= 7000;
문7) 직급별 인원수, 급여합계를 구하되 인원수가 3명 이상인 직급만 출력
(NULL인 직급은 임시직으로 표현)
SELECT NVL(SAWON_JIK, '임시직'), COUNT(NVL(SAWON_JIK, 0)), SUM(SAWON_PAY) FROM SAWON GROUP BY SAWON_JIK HAVING COUNT(NVL(SAWON_JIK, 0)) >= 3;
정도가 답이 되겠네요? 스스로 하는것이 중요하겠죠 ^_^;
select SAWON_JIK, AVG(SAWON_PAY) FROM SAWON WHERE SAWON_JIK IS NOT NULL GROUP BY SAWON_JIK;
문2) 부장,과장에 대해 직급별 급여의 총합 (NULL인 직급 제외)
SELECT SAWON_JIK, SUM(SAWON_PAY) FROM SAWON WHERE SAWON_JIK IN('부장','과장') AND SAWON_JIK IS NOT NULL GROUP BY SAWON_JIK;
문3) 2003년 이전에 입사한 자료 중 년도별 직원수 출력
SELECT TO_CHAR(SAWON_IBSAIL, 'YYYY'), COUNT(SAWON_IBSAIL) FROM SAWON WHERE SAWON_IBSAIL < '2003-1-1' GROUP BY TO_CHAR(SAWON_IBSAIL, 'YYYY');
문4) 직급별 성별 인원수, 급여합 출력 (NULL인 직급은 임시직으로 표현)
SELECT NVL(SAWON_JIK, '임시직'), SAWON_SEX, COUNT(NVL(SAWON_JIK,0)), SUM(NVL(SAWON_PAY,0)) FROM SAWON GROUP BY SAWON_JIK, SAWON_SEX;
문5) 부서번호 10,20에 대한 부서별 급여 합 출력
SELECT BUSER_NUM, SUM(SAWON_PAY) FROM SAWON WHERE BUSER_NUM IN(10,20) GROUP BY BUSER_NUM;
문6) 급여의 총합이 7000 이상인 직급 출력(NULL인 직급은 임시직으로 표현)
SELECT NVL(SAWON_JIK, '임시직'), SUM(SAWON_PAY) FROM SAWON GROUP BY SAWON_JIK HAVING SUM(SAWON_PAY) >= 7000;
문7) 직급별 인원수, 급여합계를 구하되 인원수가 3명 이상인 직급만 출력
(NULL인 직급은 임시직으로 표현)
SELECT NVL(SAWON_JIK, '임시직'), COUNT(NVL(SAWON_JIK, 0)), SUM(SAWON_PAY) FROM SAWON GROUP BY SAWON_JIK HAVING COUNT(NVL(SAWON_JIK, 0)) >= 3;
정도가 답이 되겠네요? 스스로 하는것이 중요하겠죠 ^_^;