참고
- 2020-08-18-02)집계함수.sql
- 데이터를 특정 컬럼을 기준으로 같은 값을 갖는 것끼리 그룹화시키고 이를 기준으로 합(SUM),평균(AVG),갯수(=행의 수,COUNT),최댓값(MAX),최솟값(MIN)을 구하는 함수
- GROUP BY: 같은 값 갖는 것 끼리 그룹화
- HAVING: 집계함수 자체에 조건이 부여될 경우
- 예) 각 반 인원수를 구해서 인원수가 20명 이상 되어지는 반
- GROUP BY: 각반
- COUNT: 인원수를 구해서
- HAVING: 인원수>20
- ★SELECT 절에 기술된 '그룹함수가 아닌 일반컬럼'은 반드시 GROUP BY절에 기술되어야함★
- GROUP BY 절을 쓸 때는 SELECT 절을 확인
- SELECT절에 그룹으로 안묶인 컬럼도 GROUP으로 묶일 수 있다
- 그룹핑 순서는 GROUP BY절에 기술된 컬럼 중 왼쪽부터 적용됨
- 왼 -> 오로 갈수록 세부 그룹이 또 묶임
- 예) 2005년 판매자료중 회원별, 제품별 판매현황을 조회하시오
- 회원별 그룹화
- 회원 그룹으로 묶인 상태에서 그 안에서 제품별
SUM(column)
- 해당 컬럼에 저장된 데이터를 그룹별로 합계를 구하여 반환
예시
1. 사원테이블에서 부서별 급여합계를 구하시오.
잘못된 예
2. 상품테이블에서 분류별 가격의 합계를 구하시오
- Alias: 분류코드, 분류명, 가격합계
- -> 두개의 컬럼이 사용되었지만 결국 같은 기준으로 분류해주는 것임
3. 회원테이블에서 성별 마일리지 합계를 구하시오
- Alias: 성별, 마일리지 합계
4. 2005년 3월 거래처별 매입금액합계를 구하시오
- Alias는 거래처코드, 거래처명, 매입액
- 내가 한 방식
- 이거 왜 틀렸는지 나중에 해보기
- 정식
5. 회원테이블에서 모든 회원의 마일리지의 합계를 구하시오
- GROUP BY 절 생략할 수 있지만, SELECT 절에 일반컬럼 절대 올 수 없음
6. 회원테이블에서 모든 여성회원의 마일리지의 합계를 구하시오
문제
1-1. 2005년 5월 회원별, 상품별, 판매수량 합계를 구하시오
- Alias: 회원번호, 상품코드, 판매수량합계
1-2. 2005년 5월 회원별 판매수량 합계를 구하되 판매수량 합계가 20개 이상인 회원만 조회
- Alias: 회원번호, 판매수량합계