SQL GROUP BY

AKSU·2022년 1월 6일
0

1. GROUP BY란?

  • 데이터를 유형별로 조회하고 싶을때 사용

2. 사용법

2.1. 기본

SELECT 컬럼 FROM 테이블 GROUP BY 그룹화할 컬럼;

2.2. 조건 처리 후 그룹화 (WHERE)

SELECT 컬럼 FROM 테이블 WHERE 조건식 GROUP BY 그룹화할 컬럼;

2.3. 그룹화 후 조건 처리 (HAVING)

SELECT 컬럼 FROM 테이블 GROUP BY 그룹화할 컬럼 HAVING 조건식;

2.4. 조건 처리 후 그룹화 후 조건 처리 (WHERE, HAVING)

SELECT 컬럼 FROM 테이블 WHERE 조건식 GROUP BY 그룹화할 컬럼 HAVING 조건식;

1.5. 정렬 (ORDER BY)

SELECT 컬럼 FROM 테이블 [WHERE 조건식]
GROUP BY 그룹화할 컬럼 [HAVING 조건식] ORDER BY 컬럼1 [, 컬럼2, 컬럼3 ...];
  • WHERE은 조건절에 맞는 정보를 우선 가져와서 GROUP BY로 그룹화 한다.
  • HAVING은 GROUP BY로 그룹화 한 상태에서 HAVING 조건에 맞는 정보를 가져온다.

3. 특징

  • GROUP BY를 쓸때 SELECT 절에는 원래 집계함수나 GROUP BY 한 컬럼 외에는 가지고 오지 못한다. (그룹화를 하면 여러 row의 데이터들이 있는 상태인데, 어떤 row를 가지고 와야하는지 명확하지 않기때문에 논리적으로 맞지 않다.)
  • 따라서 ORACLE에서는 GROUP BY 대상 컬럼 외에 다른 컬럼을 SELECT하면 오류가 나는데 MYSQL에서는 GROUP BY 대상 컬럼 외에 다른 컬럼을 SELECT해도 내부적으로 MAX 집계함수를 써서 SELECT를 해버리기 때문에 오류가 나지 않는다.

출처

https://extbrain.tistory.com/56

profile
경돌이

0개의 댓글