# 그룹화(GROUP BY)
## 미션
---
기존 [마켓컬리 DB](https://cloudstudying.kr/lectures/510)를 가지고, 그룹화 문제를 실습하시오.
#### DB 구조도
![홍팍-SQL-마켓-컬리-DB-스키마-예](http://drive.google.com/thumbnail?export=view&sz=w960&id=1YGLGqFe1UIt2INNEtw4Lnzcws6L5vILV)
## 개념
---
#### 그룹화란
데이터를 특징별로 분류하여, 이를 기준으로 분석하는 기법이다. 단 몇 줄의 쿼리로, 수 많은 데이터를 분류 및 집계할 수 있다.
![홍팍-SQL-그룹화-개념-정의](http://drive.google.com/thumbnail?export=view&sz=w960&id=1Y_KQocHeJxDTIP8kKXli424Y8VLLOOzX)
#### 그룹화 예
다음은 학생 테이블의 그룹화 예이다. 성별로 레코드를 분류하여, 각각의 데이터 수와 평균 신장을 계산한 것이다.
![홍팍-SQL-그룹화-분석-예](http://drive.google.com/thumbnail?export=view&sz=w960&id=1YaLOi2MMeG0kvYGKZHDyyvkEE7t2_Cfr)
이러한 그룹화는 GROUP BY 절과 집계함수의 조합으로 동작한다. 그룹화된 데이터의 SELECT절은 그 대상이 GROUP BY에 명시된 컬럼 또는 집계함수만 가능하다.
```
SELECT -- 3
gender,
COUNT(*),
AVG(height)
FROM -- 1
students
GROUP BY -- 2
gender
;
```
## 실습
---
#### 1. 결제(payments) 테이블을 결제 방법에 따라 분류하고, 각각의 결제횟수를 조회하시오.
<img height="110" src="http://drive.google.com/thumbnail? Export=view&sz=w960&id=1eSVOZSA9fpOHom7qv7A1JFrxYxTKUEDm" alt="홍팍-SQL-그룹화-GROUP-BY-결제-방법별-결제-횟수-분석" >
#### 2. 상품(products) 테이블을 보관 타입에 따라 분류하고, 각각의 상품 개수와 평균 가격을 조회하시오.
<img height="88" src="http://drive.google.com/thumbnail? Export=view&sz=w960&id=1eSmV83LhWgmBy9D4d2Ljnz_UgYQfAdPS" alt="홍팍-SQL-그룹화-GROUP-BY-보관-타입별-상품-개수-분석" >
#### 3. 사용자(users)와 주문(orders) 테이블을 조인하고, 사용자 닉네임별 배송 완료 주문수를 조회하시오.
<img height="110" src="http://drive.google.com/thumbnail?export=view&sz=w960&id=1eT879-ww9zi9CUwign4fhsjkWdOQ-fpd" alt="홍팍-SQL-그룹화-GROUP-BY-사용자-닉네임별-배송-완료-주문-수-분석" >
## 훈련
---
#### 🔥 상품별 총 주문 횟수와 주문 금액을 조회하시오.
<img height="110" src="http://drive.google.com/thumbnail?export=view&sz=w960&id=1ePRa6NIerxiZ7SuaWyGOLuxTFFO94dGw" alt="">
#### 🔥 사용자 닉네임별 배송 완료 주문 수와 총 결제 금액을 조회하시오.
<img height="110" src="http://drive.google.com/thumbnail?export=view&sz=w960&id=1eTJYL1Lvu0EvTOBqKMrsg6QiCHhZc3tI" alt="홍팍-SQL-그룹화-GROUP-BY-사용자-닉네임별-완료-주문수-총-결제-금액-분석">