Sample -2 Group

종료일자가 없다는 의미로 9999-01-01 을 사용했음을 참고하고 실습한다.

  • 현재 일하는 업무별 직원의 수를 구하시오

    SELECT TITLE,COUNT(*)
    FROM TITLES
    WHERE TO_DATE='9999-01-01'
    GROUP BY TITLE
    ORDER BY TITLE;
    
  • 남여 직원수를 구하되 M은 '남' F는 '여'로 출력하시오

  • SELECT IF(GENDER='M','남','여')GENDER,COUNT(*)
    FROM EMPLOYEES
    GROUP BY GENDER;
    
  • 부서별 현재 인원수가 많은 순서로 출력하시오

    SELECT DEPT_NO, COUNT(*) AS CNT
    FROM DEPT_EMP
    WHERE TO_DATE='9999-01-01'
    GROUP BY DEPT_NO
    ORDER BY CNT DESC;
    
  • 부서 이동이 많은 직원순으로 출력하시오

    SELECT EMP_NO, COUNT(*) CNT
    FROM DEPT_EMP
    GROUP BY EMP_NO
    HAVING COUNT(*)>1
    ORDER BY CNT DESC
    
  • 부서별 현재 인원수가 15000명 이상인 부서를 구하시오

  • SELECT DEPT_NO, COUNT(*) CNT
    FROM DEPT_EMP
    WHERE TO_DATE='9999-01-01'
    GROUP BY DEPT_EMP
    HAVING CNT>15000
    ORDER BY CNT DESC
    
  • 직원들의 부서 이동 과정을 출력하시오

  • SELECT EMP_NO, GROUP_CONCAT(DEPT_NO SEPARATOR '>') PATH
    FROM DEPT_EMP
    GROUP BY EMP_NO
    HAVING COUNT(*)>1
    

    우선 개인별로 그룹화한 후 GROUP_CONCAT(그룹으로 지정된 데이터들을 지정한 구분자를 이용하여 하나의 문자열로 만든다)을 사용한다.

results matching ""

    No results matching ""