[MySQL] SELECT 명령어 GROUP BY 절과 HAVING절

2020. 5. 27. 19:08DB/MySQL

https://overroading.tistory.com/29

 

[MySQL] SELECT 명령어 LIMIT문

https://overroading.tistory.com/24 [MySQL] SELECT 명령어 ORDER BY문 https://overroading.tistory.com/23 [DataBase] DML(Data Manipulation Language) 명령어- SELECT(TABLE) - 데이터 베이스에서 가장 많이..

overroading.tistory.com

 - 해당 글에서는 ORDER BY절과 LIMIT절에 대해서 기록을 했으며 데이터를 그룹화를 할수 있는 GROUP BY절과 HAVING절에 대해서 기록

 

- GROUP BY절

  - 특정 컬럼을 그룹화

- HAVING절

  - 특정 컬럼을 그룹화한 결과에 조건을 추가

 

 - SELECT문 GROUP BY절 기본 구조

  * SELECT [필드명] FROM [테이블명] WHERE [조건] GROUP BY [필드명];

 - SELECT문 GROUP BY + HAVING절 기본 구조

  * SELECT [필드명] FROM [테이블명] WHERE [조건]

             GROUP BY [필드명]

             HAVING [필드명];

 - SELECT문 GROUP BY + HAVING + ORDER BY절 기본 구조

  * SELECT [필드명] FROM [테이블명] WHERE [조건]

             GROUP BY [필드명]

             HAVING [필드명]

            ORDER BY [필드명] [DESC / ASC] ;

- SELECT문 GROUP BY + ORDER BY + LIMIT절 기본 구조

  * SELECT [필드명] FROM [테이블명] WHERE [조건]

             GROUP BY [필드명]

             HAVING [조건]

             ORDER BY [필드명] [DESC / ASC]

             LIMIT [Offset, Record];

 

1. MEMBER2 TABLE UNIQ 필드 그룹화

  * 사용한 명령어 : SELECT * FROM MEMBER2;

  - UNIQ 필드를 보게 되면 1, 2, 3 이라는 데이터가 출력이 되어있다.

 

  * 사용한 명령어 : SELECT * FROM MEMBER2 GROUP BY UNIQ;

   - UNIQ 필드 기준으로 그룹화가 되었으며 1, 2, 3에 데이터는 다르므로 서로 다르게 그룹화를 한 상태

 

2. MEMBER2 TABLE UNIQ 필드 그룹화 UNIQ은 2이상부터

 * 사용한 명령어 : SELECT * FROM MEMBER2 GROUP BY UNIQ HAVING UNIQ >= 2;

3. MEMBER2 TABLE UNIQ 필드 그룹화 UNIQ은 2이상부터 이며 UNIQ는 오름차순으로 출력

 * 사용한 명령어 : SELECT * FROM MEMBER2 GROUP BY UNIQ HAVING UNIQ >= 2 ORDER BY UNIQ DESC;

4. MEMBER2 TABLE UNIQ 필드 그룹화 UNIQ은 2이상부터 이며 UNIQ는 오름차순으로 2행부터 1개의 레코드를 출력

 * 사용한 명령어 : SELECT * FROM MEMBER2 GROUP BY UNIQ HAVING UNIQ >= 2 ORDER BY UNIQ DESC LIMIT 1,1;