Oracle - 집계함수 SUM

갓김치·2020년 8월 18일
0

Oracle

목록 보기
17/33

참고

  • 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: 회원번호, 판매수량합계
profile
갈 길이 멀다

0개의 댓글