2022. 5. 12. 22:38ㆍWork, 일/SQL
요약
- group by 구문
- group by와 함께 쓰는 그룹함수
- having 구문
- order by 구문
- 해석 및 작성 순서
- 기본구문 간단 최종정리
group by 구문
- 데이터를 '특정 컬럼 기준'으로 그룹화시키는 구문
- 그룹을 나누고, 그 그룹을 또 그룹화할 수 있음 : group by [컬럼1(그룹기준1)], [컬럼2(그룹기준2)]
ex. 배달의민족 group by shop_category, menu : 배달의민족을 가게 카테고리 별로 나누고, 각 가게 카테고리 내에서 메뉴 별로 다시 나눔
- 많은 양의 데이터를 처리하는데 하나하나 데이터를 다 다루며 특징을 찾아내기 힘들 때 사용. 대량의 데이터를 집계하고, 집계한 지표를 사용해서 그룹 특징을 파악할 수 있음. 고객 특징, 시장 특징 등 그룹별 특징을 파악할 수 있음
- 각 그룹에 대한 계산결과(합/평균/카운트 등)를 산출하기 위해서 그룹함수와 같이 사용
- select 뒤의 컬럼과 group by 뒤의 컬럼은 동일한 순서 및 컬럼으로 작성
- 어떤 특징으로 그룹화할지 고민하는게 좋다
group by와 함께 쓰는 그룹함수
- 하나 이상의 행을 그룹으로 묶어 계산하기 위한 함수
- group by 기준으로 나누어진 각 그룹별로 함수의 결과를 확인할 수 있음
- count, sum, avg, max, min
- count(*)는 전체 행의 개수를 세는 것이므로 null도 세지만, count(컬럼)은 null을 제외하고 센다
having 구문
- group by한 그룹함수 결과에 대해서 조건을 적용하는 경우 사용=그룹조건
- group by절 뒤에 이어서 작성
- group by구보다 where구가 먼저 실행되기 때문에 그룹조건에 where에 사용할 수 없음. where은 테이블에, having은 그룹결과에 적용하는 것
order by 구문
- "~순서대로"를 의미
- 테이블을 특정 컬럼의 값을 기준으로 오름차순(ASC) or 내림차순(DESC)으로 정렬 가능
- 한 개 혹은 여러 개의 컬럼에 정렬기준 적용 가능
단일 컬럼 정렬 : order by 컬럼1 (asc) or desc (asc는 생략 가능, 자동 적용)
복수 컬럼 정렬 : order by 컬럼1 desc, 컬럼2 = 컬럼1은 내림차순, 컬럼2는 오름차순
- 다만 엑셀에서 하는 게 시간 리소스가 훨씬 절약되므로 이 작업은 SQL에서는 잘 사용하지 않는다
해석 및 작성 순서
from(어느 테이블을 사용해?)
> where(테이블에 어떤 필터를 걸어?)
> group by(필터된 테이블을 어떤 기준으로 그룹화해?)
> having(어떤 기준에 맞는 그룹만 산출해?)
> select(그룹을 산출할 때 어떤 컬럼값을 산출해?)
> order by(산출 결과를 어떻게 정렬해?)
기본구문 간단 최종정리
목적 | 구문 | 절 작성 예시 | 해석 |
데이터를 정리하기 위한 기본 구문 | select | product_id, count(order_id) as ords, sum(QUANTITY) as total_qan |
product_id 별 order_id의 갯수를 ords 이름으로 뽑아주고, QAUNTITY의 합을 total_qan의 이름으로 뽑아주는데 |
from | 'ls-data-literacy-301513.ls_sql_ecample.co_coer_iems' | 이 테이블에서 | |
where | is_canceled = '0' | is_canceled가 0인 테이블값만 불러와서 | |
데이터분석 결과를 만들기 위한 구문 | group by | product_id | product_id 별 |
having | sum(QUANTITY) >= 100 | QUANTITY의 합계가 100 이상인 값만 | |
데이터를 예쁘게 나열하기 위한 구문 | order by | prodoct_id | product_id의 오름차 순으로 산출해줘 |
'Work, 일 > SQL' 카테고리의 다른 글
마케터의 SQL 학습기 : 일반함수 (0) | 2022.05.13 |
---|---|
마케터의 SQL 학습기 : 데이터 전처리용 기본구문 익히기 (1) (0) | 2022.05.11 |
마케터의 SQL 학습기 : 정의 알기 (0) | 2022.05.10 |
마케터의 SQL 학습기 : 필요성 인지하기 (0) | 2022.05.09 |
콘텐츠 전략에 데이터를 활용하기 위하여 (0) | 2022.05.09 |