2016년 2월 16일 화요일

[SQL 교육] 그룹 쿼리(Group Query)


[SQL 교육] 그룹 쿼리(Group Query)

(*본 게시물은 본인이 교육을 통해서 배우는 내용을 정리하는 글입니다. 부족한 부분이 많으니 참고해주시기 바랍니다. 혹시 정확한 의미를 알고 싶으시거나, 틀린 내용에 대해 조언해주시고 싶은 분들께서는 댓글을 남겨주시면 최대한 빠르게 답변하겠습니다. 감사합니다.)
※ Oracle DB를 사용합니다.


1. 그룹 쿼리

  1. 그룹 행 함수(=복수 행 함수)
    1. count - 갯수
    2. sum - 합계
    3. avg - 평균
      1. 평균을 계산할 때 null값은 자동으로 배제된다.
      2. null인 행을 포함하여 평균을 계산하려면, 'sum(열이름)/count(*)'으로 계산한다.
    4. min - 최소값, max - 최대값
    5. variance - 분산
    6. stddev - 표준편차
  2. Group By
    1. ~별 ( 그룹을 지을 열들 )
    2. 구문
      1. group by 열
      2. group by (열1, 열2, … )
    3. 주의할 점!!
      1. select 절에는 group by 절의 열이 아닌 다른 열을 복수 행 함수 없이 사용 할 수 없다.
  3. Having
    1. group by 한 것에 조건을 건다.
    2. 예. 부서별 급여의 평균이 5000이상인
      1. 이 경우 '부서별 급여의 평균'이 그룹핑 한 것이고 그것을 조건 확인한다.
    3. group by의 앞에 올 수 도 있고, 뒤에 올 수도 있다.
  4. 집계 함수
    1. roullup
      1. 레벨별 집계
    2. cube
      1. 가능한 조합으로 집계
    3. grouping
      1. 어떤 컬럼이 그룹핑 작업에 사용되었으면 1, 그렇지 않았으면 0을 반환
    4. grouping_id
      1. 두 컬럼 다 그룹핑에 사용되면 3, A컬럼만 그룹핑에 사용되면 1, B컬럼만 그룹핑에 사용되면 2, 두 컬럼 모두 사용 안되면 0
    5. grouping sets
      1. 두 그룹에 대한 집계를 동시에 출력하고 싶을 때 사용한다.
  5. 집합 연산자
    1. union - 합집합
      1. 중복된 결과가 있으면 1개만 출력한다.
    2. union all - 합집합
      1. 중복된 결과가 있더라도 모두 출력한다.
    3. intersect - 교집합
    4. minus - 차집합
    5. 주의할 점!!!
      1. select 절에 있는 열의 개수,타입이 일치해야 한다.

댓글 없음:

댓글 쓰기