Notice
Recent Posts
Recent Comments
Link
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

dongdorodongdong

GROUP BY, HAVING, ORDER BY 본문

SQLD

GROUP BY, HAVING, ORDER BY

d5ngs 2019. 10. 24. 14:29

집계함수

  • 특징
    - 여러 행들의 그룹이 모여서 그룹당 단 하나의 결과를 반환하는 함수

  • COUNT(*)
    - NULL값을 포함한 행의 수를 반환

  • COUNT(표현식)
    - 표현식의 값이 NULL 값인 것을 제외한 행의 수를 반환

  • SUM(표현식)
    - 합계를 반환

  • AVG(표현식)
    - 평균을 반환

  • MAX(표현식), MIN(표현식), STDDEV(표현식), VARIAN(표현식)
    - 최대, 최소, 표준 편차, 분산을 반환


GROUP BY

  • 특징
    - FROM, WHERE 절 뒤에 오며, 데이터들을 작은 그룹으로 분류하여 통계정보를 얻을 때 사용
    - GROUP BY로 소그룹 기준을 정한 후, SELECT절에 집계 함수 사용
    - 집계 함수의 정보는 NULL값을 제외 후 수행
    - GROUP BY 절에서는 Alias 명을 사용X
    - GROUP BY 절로 소그룹 기준을 정한 후, WHERE절에서 조건을 주지 못한다. (HAVING절 사용)

  • 고려사항
    -
    SELECT DISTINCT deptno FROM emp;
    SELECT deptno FROM emp GROUP BY deptno;는 똑같은 결과를 반환한다.
    - 집계함수를 사용하여 그룹으로 구분할 때는 GROUP BY절을 사용하며, 특정 그룹 없이 중복 데이터를 제거할 경우에는 DISTINCT절을 사용하자!

HAVING
  • 특징
    - WHERE절의 조건 변경은 대상 데이터의 개수가 변경되므로 결과 데이터 값이 변경되지만, HAVING절의 조건 변경은 결과 데이터 변경은 없고 출력되는 레코드의 개수만 변경될 수 있다.
    - GROUP BY 없이 사용하여서 오류가 발생하지는 않는다.


ORDER BY

  • 특징
    - ORDER BY절에 컬럼명 대신 SELECT 절에서 사용한 Alias명이나 컬럼순서의 정수도 사용 가능
    - 오름차순(ASC)가 기본값
    - Oracle
    NULL값을 가장 큰 값으로 간주
    - SQL Server
    NULL값을 가장 작은 값으로 간주

SQL문장 실행 순서
  1. (FROM) 대상 테이블을 참조
  2. (WHERE) 대상 데이터가 아닌 것 제거
  3. (GROUP BY) 행들을 그룹화
  4. (HAVING) 그룹핑된 값의 조건에 맞는 것 출력
  5. (SELECT) 데이터 값을 출력 및 계산
  6. (ORDER BY) 데이터를 정렬


'SQLD' 카테고리의 다른 글

표준조인  (0) 2019.10.24
JOIN  (0) 2019.10.24
함수  (0) 2019.10.24
SQL-WHERE  (0) 2019.10.23
SQL-TCL  (0) 2019.10.23