일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- SQL혼자서
- sql독학
- SQL D
- 문과 코딩독학
- DEBEAVER
- SQL
- SQL자격증
- SQL D 자격증
- MySQL
- SQL문과생
- inner join
- join
- DBeaver
- 마케터코딩
- SQL COUNT함수
- group by
- SQL D자격증
- 마케터SQL
- 코딩독학
- 조인
- 마케팅코딩
- 문과코딩
- sql함수
- PostgreSQL
- SQL D 독학
- outer join
- SQL독학으로 자격증
- 문과SQL
- ROLLUP함수
- SQL 분석함수
- Today
- Total
문과생의 우당탕탕 공부 기록
10 . GROUPING SET ) 조인 집계를 활용하기, GROUP BY 종류 본문
고급조인집계 파트가 10부터 시작된다.
GROUPING SET 절
- 의미: GROUPIING SET절을 사용하여 여러 개의 UNION ALL을 이용한 SQL과 같은 결과를 도출할 수 있다.
우선 SALES라는 테이블을 만들어보자
BRAND라는 항목은 글자로, 근데 NOT NULL
SEGMENT도 동일.
QUANTITY 항목은 숫자인데, NOT NULL
여기서 PRIMARY KEY 설정은 (BRAND, SEGMET)로.
SALES라는 테이블에 순서대로 BRAND, SEGMENT, QUANTITY 를 넣을 것이다.
잘 만들어졌는지 확인해보자
굿굿
GROUPING SET 절 학습 전 준비 - 2개 컬럼 GROUP BY
BRAND와 SEGMENT 순으로 분류된다.
(근데 아직도 왜 XYZ와 프리미엄 베이직 순서가 저렇게 되는지 모르겠다 ㅜ 아시는 분 댓글달아주세요)
GROUPING SET 절 학습 전 준비 - 1개 컬럼 GROUP BY
각각의 BRAND 별, SEGMENT별로 그룹바이를 할 수 있다.
BRAND별로 그룹바이를 진행하면 -> ABC의 총계, XYZ의 총계
SEGMENT 별로 그룹바이를 진행하면 -> PREMIUM의 총계, BASIC 총계
전체 SUM을 조회하면, 합계가 나온다.
GROUPINF SET 절 학습 전 준비 - UNION ALL의 활용
UNION ALL 을 이용하여 BRAND,SEGMENT기준, BRAND기준, SEGMENT기준, 전체기준으로 QUATNTITY 합계의 값을 구할 수 있다.
일단 굉장히 긴 SQL문이 나왔다.
그리고 중복되는 것도 많다.
문제점
1. 동일한 테이블을 4번씩이나 읽고있다. -> 성능 저하 가능성이 존재
2. 너무 SQL문이 길어진다. -> 복잡해진다.-> 유지나 보수가 용이하지않다.
*패캠 선생님 말씀을 인용했습니다.
그래서 중복도 제거하고, 한번에 편하게 그룹을 나눌 수 있는
GROUP BY함수를 배워보자.
GROUPING SET절 실습
GROUPING SETS절은
- 특정 항목에 대한 소계를 계산하는 함수이다.
BRAND, SEGMENT, SUM 세 가지 항목을 뽑을건데,
BRAND, SEGMENT별
BRAND별
SEGMENT별
총합계 *()표시는 총합계를 의미한다.
GROUPING SET절 실습 - GROUPING 함수의 활용
GROUPINT 함수: 해당 컬럼이 집계에 사용되었으면 0, 그렇지 않으면 1을 리턴한다.
한글 제목을 붙여주어서, 더 이해가 쉽도록 돕는다.
GROUP BY 함수와 DISTINCT 함수의 차이점도 다음에 작성해보도록 하겠다.
GROUPING SETS 함수
= 세트
GROUPING SETS 함수에 대해서 쉽게 설명하면, 말 그대로 그냥 세트이다
후에 ROLLUP, CUBE 등 여러개를 다 쓰고 비교를 할 예정이지만, 쉽게 이해하기위해 내가 공부하면서 사용했던 표를 첨부하겠다.
마지막에 나머지 절의 공부가 끝나면 한번 싹 정리해야겠다.
'SQL 공부 > 조인과 집계 데이터' 카테고리의 다른 글
12. CUBE절) 다차원 소계를 출력해보자 (0) | 2023.01.25 |
---|---|
11. ROLL UP 절) ROLLUP 함수의 의미와 사용방법 쉽게 이해하기 (0) | 2023.01.22 |
09. HAVING 절) HAVING절의 실행 순서는 어떻게될까? (0) | 2023.01.15 |
08. GROUP BY 절) 언제, 어떻게, 왜 사용될까? (0) | 2023.01.15 |
07. NATURAL JOIN) 왜 실무에서는 잘 안쓸까? (0) | 2023.01.14 |