연습문제 1
사원 테이블에서 JOB_ID별 사원 수를 구하세요.
SELECT COUNT(JOB_ID) FROM EMPLOYEES;
결과
연습문제 2
사원 테이블에서 JOB_ID별 월급의 평균을 구하세요. 월급의 평균 순으로 내림차순 정렬하세요
SELECT JOB_ID, ROUND(AVG(SALARY),2)
FROM EMPLOYEES
GROUP BY JOB_ID
ORDER BY AVG(SALARY) DESC;
결과
연습문제 3
사원 테이블에서 입사 년도 별 사원 수를 구하세요
SELECT SUBSTR(HIRE_DATE,1,2) AS 입사년도, COUNT(*) AS 사원수,
FROM EMPLOYEES
GROUP BY SUBSTR(HIRE_DATE,1,2)
ORDER BY SUBSTR(HIRE_DATE,1,2);
SELECT TO_CHAR(HIRE_DATE, 'YY') AS 입사년도, COUNT(*) AS 사원수
FROM EMPLOYEES
GROUP BY TO_CHAR(HIRE_DATE, 'YY')
ORDER BY TO_CHAR(HIRE_DATE, 'YY');
결과
연습문제 4
급여가 1000 이상인 사원들의 부서별 평균 급여를 출력하세요. 단 부서 평균 급여가 2000이상인 부서만 출력
SELECT DEPARTMENT_ID, ROUND(AVG(SALARY),2) AS 급여평균
FROM EMPLOYEES
WHERE SALARY >= 1000
GROUP BY DEPARTMENT_ID
HAVING AVG(SALARY) >= 2000
ORDER BY DEPARTMENT_ID;
연습문제 5
사원 테이블에서 commission_pct(커미션) 컬럼이 null이 아닌
사람들의 department_id(부서별) salary(월급)의 평균, 합계, count를 구합니다
SELECT
DEPARTMENT_ID AS 부서명,
ROUND(AVG(SALARY + SALARY * COMMISSION_PCT),2) AS 급여평균,
SUM(SALARY) AS 급여총액,
COUNT(*) AS 수
FROM EMPLOYEES
WHERE COMMISSION_PCT IS NOT NULL
GROUP BY DEPARTMENT_ID;
결과
연습문제 6
직업별 월급합, 총합계를 출력하세요
SELECT DECODE(GROUPING(JOB_ID), 1, '합계', JOB_ID),
SUM(SALARY) AS 합계
FROM EMPLOYEES
GROUP BY ROLLUP(JOB_ID)
ORDER BY JOB_ID;
결과
연습문제 7
부서별, JOB_ID를 그룹핑 하여 토탈, 합계를 출력하세요.
SELECT DECODE( GROUPING(DEPARTMENT_ID), 1, '총계', DEPARTMENT_ID) AS DEPARTMENT_ID,
DECODE ( GROUPING(JOB_ID),1,'소계', JOB_ID) AS JOB_ID,
COUNT(*) AS TOTAL,
SUM(SALARY) AS SUM
FROM EMPLOYEES
GROUP BY ROLLUP(DEPARTMENT_ID, JOB_ID)
ORDER BY SUM;
결과
728x90
'Programming > Database' 카테고리의 다른 글
[Database] JOIN 문제풀이 (0) | 2023.12.06 |
---|---|
[Database] JOIN (0) | 2023.12.06 |
[Database] - Group 함수 (그룹함수) (1) | 2023.12.05 |
[Database] 함수 - 집합연산자와 분석함수 (1) | 2023.12.05 |
[Database] 여러 함수 (0) | 2023.12.04 |