반응형
Notice
Recent Posts
Recent Comments
Link
«   2024/12   »
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
Tags
more
Archives
Today
Total
관리 메뉴

디케이

MySQL 그룹화하여 데이터 조회 (GROUP BY) 본문

SQL

MySQL 그룹화하여 데이터 조회 (GROUP BY)

디케이형 2020. 11. 20. 15:56
반응형

▶설명


하나, 예를 들어보겠습니다.

MySQL에서 유형별로 갯수를 가져오고 싶은데, 단순히 COUNT 함수로 데이터를 조회하면 전체 갯수만을 가져옵니다.

이렇게 유형별로 갯수를 알고 싶을 때는 컬럼에 데이터를 그룹화 할 수 있는 GROUP BY를 사용하는 것입니다.

 

GROUP BY를 사용할 때는 두가지를 기억해야 합니다.

특정 컬럼을 그룹화 하는 GROUP BY 

특정 컬럼을 그룹화한 결과에 조건을 거는 HAVING

 

* WHERE랑 HAVING을 헷깔리는 경우가 많은데 WHERE는 그룹화 하기 전이고, HAVING은 그룹화 후에 조건입니다.

 

그럼 이제 사용법을 정리하겠습니다.

 

▶사용법


컬럼 그룹화

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

조건 처리 후에 컬럼 그룹화

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

컬럼 그룹화 후에 조건 처리

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

 

조건 처리 후에 컬럼 그룹화 후에 조건 처리

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

 

ORDER BY가 존재하는 경우

SELECT 컬럼 FROM 테이블 [WHERE 조건식]
GROUP BY 그룹화할 컬럼 [HAVING 조건식] ORDER BY 컬럼1 [, 컬럼2, 컬럼3 ...];

 

▶예제 쿼리 (Example Query)


예제 테이블 : hero_collection

 idx

type 

name 

 안중근

 윤봉길

 김유신

 이순신

 이성계

 왕건

 7 

 반갑수

 

 

type 그룹화하여 name 갯수 조회 (컬럼 그룹화)

쿼리SELECT type, COUNT(name) AS cnt FROM hero_collection GROUP BY type;

 

결과

 type

cnt 

 2 

  3 

 4 

 

 

type 1 초과인, type 그룹화하여 name 갯수 조회 (조건 처리 후 컬럼 그룹화)

쿼리SELECT type, COUNT(name) AS cnt FROM hero_collection WHERE type > 1 GROUP BY type;

 

결과

 type

cnt 

 3 

  4 

 

 

type 그룹화하여 name 갯수를 가져온 후, 그 중에 갯수가 2개 이상인 데이터 조회 (조건 처리 후에 컬럼 그룹화 후에 조건 처리)

쿼리SELECT type, COUNT(name) AS cnt FROM hero_collection GROUP BY type HAVING cnt >= 2;

 

결과

 type

cnt 

 2 

  3 

 

 

type 1 초과인, type 그룹화하여 name 갯수를 가져온 후, 그 중에 갯수가 2개 이상인 데이터 조회 (조건 처리 후에 컬럼 그룹화 후에 조건 처리)

쿼리

colorscripter.com/info#e"

결과

 type

cnt 

 2 

  3 

 

 

type 1 초과인, type 그룹화하여 name 갯수를 가져온 후, 그 중에 갯수가 2개 이상인 데이터를 type 내림차순 정렬로 조회 (내림차순 정렬)

쿼리

SELECT type, COUNT(name) AS cnt FROM hero_collection
WHERE type > 1 GROUP BY type HAVING cnt >= 2 ORDER BY type DESC;

 

결과

 type

cnt 

 3 

  2 

2



출처: https://extbrain.tistory.com/56 [확장형 뇌 저장소]

반응형