유블로그

[SQL] 집계함수, GROUP BY 본문

SQL

[SQL] 집계함수, GROUP BY

yujeong kang 2020. 10. 15. 11:11

집계함수

  • 하나 이상의 행을 묶어 연산하여 총합, 평균 등을 하나의 결과로 반환

 

GROUP BY

  • select 문에서 group by 절을 사용하는 경우 database 는 쿼리된 테이블의 행을 그룹으로 묶는다.
  • 선택목록의 집계함수를 각 행 그룹에 적용하고 각 그룹에 대해 단일 결과 행을 반환한다.
  • group by 절을 생략하면 선택 목록의 집계 함수를 쿼리된 테이블의 모든 행에 적용한다.
  • select 절의 모든 요소는 group by 절의 표현식, 집계함수를 포함하는 표현식 또는 상수만 가능.

 

 

 

ex ) 부서별 최고 급여와 최소 급여를 출력하라.

SELECT department_id, max(salary), min(salary)
FROM employees
GROUP BY department_id;

 

 

HAVING

  • group by 절에 조건을 줄 경우 having 절을 사용한다.

40, 50, 60번 부서에서 근무하는 사원들 중 job_id별 급여 합이 50000보다 큰 job_id 별 평균 급여

SELECT job_id , avg(salary)
FROM employees e 
WHERE department_id IN (40, 50, 60)
GROUP BY job_id 
HAVING SUM(salary) > 50000;

 

 

 

 

 

 

'SQL' 카테고리의 다른 글

SELECT - case, between, is null, like, order by  (0) 2020.10.20
[SQL] SET (집합연산자)  (0) 2020.10.15
IN, ANY, ALL  (0) 2020.10.14
Subquery  (0) 2020.10.13
JOIN - INNER JOIN, NATURAL JOIN, OUTER JOIN  (0) 2020.10.13