전체 방문자
오늘
어제
21종
종이의 코딩 공부방
21종
  • 분류 전체보기 (174)
    • JAVA (64)
    • Springboot (46)
      • 블로그만들기 (45)
    • Database (60)
      • Oracle (60)
    • 프로젝트 3 (CELOVER) (0)
    • 개발서버 구축 (3)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

인기 글

최근 글

최근 댓글

hELLO · Designed By 정상우.
21종

종이의 코딩 공부방

Database/Oracle

[Oracle] HAVING 절

2023. 7. 6. 17:45

    < HAVING 절 >

    그룹에 대한 조건을 제시할 때 사용되는 구문(주로 그룹함수식을 가지고 조건을 제시할 때 사용)


-- 각 부서별 평균 급여 조회 (부서코드, 평균급여)

SELECT DEPT_CODE, AVG(SALARY)
FROM EMPLOYEE
GROUP BY DEPT_CODE
ORDER BY 1;

 

-- 부서별 평균 급여가 300만원 이상인 부서들만 조회

SELECT DEPT_CODE, AVG(SALARY)
FROM EMPLOYEE
WHERE AVG(SALARY) >= 3000000
GROUP BY DEPT_CODE; -- 오류발생 (그룹함수 가지고 조건 제시시 WHERE 절에서 안됨)

즉, 아래와 같이 변경해야된다!!

SELECT DEPT_CODE, AVG(SALARY) -- 4
FROM EMPLOYEE -- 1
GROUP BY DEPT_CODE -- 2
HAVING AVG(SALARY) >= 3000000; --3

 

-- 직급별 총 급여합 (단, 직급별 급여합 1000만원 이상인 직급만을 조회) 직급코드, 급여합 조회

SELECT JOB_CODE, SUM(SALARY) 
FROM EMPLOYEE
GROUP BY JOB_CODE
HAVING SUM(SALARY) >= 10000000;

 

-- 부서별 보너스를 받는 사원이 없는 부서만을 조회 부서코드, 보너스를 받는 사원의 수

SELECT DEPT_CODE, COUNT(BONUS)
FROM EMPLOYEE
GROUP BY DEPT_CODE
HAVING COUNT(BONUS) = 0;

    'Database/Oracle' 카테고리의 다른 글
    • [Oracle] 집합 연산자
    • [Oracle] SELECT문 실행 순서
    • [Oracle] GROUP BY 절
    • [Oracle] 함수(FUNCTION)_그룹 함수
    21종
    21종
    코딩 공부한 것 정리하려고 만든 블로그

    티스토리툴바