학습 기록/DataBase

23.05.08 / DataBase / GROUP BY, HAVING

SooHw 2023. 5. 8. 13:40

1. GROUP BY 

특정 칼럼을 기준으로 그룹화 할때

부서별로 급여의 평균

*

실제 출력되는 행의 개수가 감소

GROUP BY 보다 늦게 실행되는 (HAVING, OREDER BY, SELECT)절에서는 출력할수 있는 행 제한

but) 집계함수 (avg, max, min ,,)는 사용가능

 

*

다중행 함수 (집계함수) : 함수에 적용되는 행은 여러개, 결과값은 1개

ex) SUM(SALARY) : 1행 -> SALARY는 108행

단일행 함수(문자, 숫자, 날짜, , ,) : 함수에 적용되는 행 1개, 결과값 각 행에 대해

ex)  UPPER, LOWER

 

(예제)

성적표 테이블에서 학생별로 평균점수 출력
단, 소수점 1자리까지만 출력

*

COUNT(컬럼), COUNT(*)

COUNT(*) : NULL 포함해서 COUNT

 

(예제)

성적표 테이블에서 학생별로 JAVA와 DATABASE 성적의 평균 출력 / (과목은 java, database, python이 있음)
단 1의 자리에서 반올림

 

2.HAVING 

GROUP BY 절을 통해서 그룹화 된 결과 중에서 원하는 결과로 필터링

HAVING + 그룹에대한 조건 (집계함수에 대한 조건)

집계함수(AVG, MAX, ,)는 HAVING에만 사용가능/ WHERE절에는 집계함수 사용 불가

 

(예제)

학생별 평균 성적이 75점 이하인 학생만 출력

(예제)

수강생 정보에서 소속된 팀의 인원수가 3명이상인 팀만 출력

(예제)

(예제)

 

'학습 기록 > DataBase' 카테고리의 다른 글

23.05.10 / DataBase / DML  (0) 2023.05.10
23.05.09 / DataBase / ORDER BY, JOIN  (0) 2023.05.09
23.05.04 / DataBase / 함수  (0) 2023.05.07
23.05.03 / DataBase / WHERE  (0) 2023.05.06
23.05.02 / DataBase / SELECT, DISTINCT  (0) 2023.05.06