| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- 문과 코딩독학
- 마케팅코딩
- SQL
- MySQL
- inner join
- PostgreSQL
- outer join
- SQL D 자격증
- sql독학
- SQL자격증
- SQL D자격증
- SQL독학으로 자격증
- SQL혼자서
- 마케터SQL
- SQL D 독학
- sql함수
- SQL COUNT함수
- 문과SQL
- group by
- SQL 분석함수
- join
- 마케터코딩
- 문과코딩
- ROLLUP함수
- 코딩독학
- DEBEAVER
- SQL D
- 조인
- SQL문과생
- DBeaver
- Today
- Total
목록sql독학 (9)
문과생의 우당탕탕 공부 기록
분석함수란? - 특정 집합 내에서 결과 건수의 변화 없이, 해당 집합안에서 합계 및 카운트 등을 계산할 수 있는 함수이다. 분석함수를 이해하기 위해, 테이블을 하나 작성해보자. PRODUCT_GROUP이라는 테이블에는 그룹ID와 그룹NAME이 있다 PRODUCT 테이블에는 제품ID와 NAME, PRICE와 GROUP_ID가 있는데 이 GROUP_ID는 위에 PRODUCT_GROUP에서 ID를 외래키로 가져온 것임~! 참조한다는거다 각 테이블에 순서대로 넣고.. 1 2 3 순서대로 PRODUCT_GROUP 결과값은 이렇게 PRODUCT 결과값은 이렇게 COUNT 함수 COUNT함수를 사용해보자. 집계함수는 집계의 결과만을 출력한다. 그래서 1행만 나온다. 세어보니 11개. 그런데 실무에서는 무조건, 총 몇..
CUBE 절의 의미 - 지정된 GROUPING 컬럼의 다차원 소계를 생성하는데 사용된다. 간단한 문법으로 다차원 소계를 출력할 수 있다. CUBE절 문법 - CUBE를 여러 값으로 취할 수도 있고, -> GROUP BY CUBE (C1, C2, C3) ; - CUBE를 특정값분리하여 지정할 수 있음-> GROUP BY C1, CUBE (C2, C3); 쉽게 말해, CUBE(C1, C2, C3)를 GROUPING SETS로 표현하면 총 8개의 소계가 발생한다. GROUPING SETS ( (C1, C2, C3), (C1, C2), (C1, C3), (C2, C3), (C1), (C2), (C3), () ) 의 값이랑 똑같다. => 즉, CUBE절 내 인자의 개수가 3개이면, 2의 3승의 소계(총8개)가 발..
ROLL UP 절의 의미 - 지정된 GROUPING 컬럼의 소계를 생성하는데 사용된다. 간단한 문법으로 다양한 소계를 출력할 수 있다. BRAND, SEGMENT, SUM(QUANTITY)를 뽑을건데 그룹지을거야 ROLLUP (브랜드, 세그먼트) -> 브랜드별(ABC각각 베이직,프리미엄,전체값 / XYZ각각 베이직,프리미엄,전체값), 총합계 이렇게 구성된다. ROLLUP함수는 쉽게 세로로 종이를 폈을 때, 말아올린다는(ROLL UP)느낌으로 생각하면 쉽다. 종이를 펴면, 전부 다(각각과 총합까지) 나오지만, 그 종이를 조금씩 밑에서 위로 말아올리면 한 항목씩 사라진다(?) 그래서 위에 부분만 중요시하게 남는.. 자 그러면 다음 예시로 한번 가보자 SEGMENT그룹별로 나누면, 당연히 각 SEGMENT별인..
그룹함수의 의미 - 데이터를 GROUP BY로 나타낼 수 있는 데이터를 구하는 함수이다. 쉽게 말해, ORDER BY 어쩌고 조건처럼 GROUP BY 저쩌고 조건에서 '저쩌고'를 함수로 표현하는 것이다. 집계함수 : COUNT, SUM, AVG, MAX, MIN 등 소계(총계)함수 : ROLLUP, CUBE, GROUPING SETS (1) ROLLUP 함수 - 의미: 소그룹 간의 소계 및 총계를 계산하는 함수 롤업의 기본은 말아올리는(?) 느낌이다. 말아올리면 결국 맨위에거만 보이니까, 맨 처음 언급된 것 위주로 그룹핑되는 것이다. 여러개가 말리면, 예의상 먼저 전부 그룹핑해주고, 결국은 점점 위에거로만 그룹핑되는 느낌. ROLLUP은 총합계 포함이다. (2) CUBE 함수 - 의미: 소그룹 간의 소계..
고급조인집계 파트가 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와 프리미엄 베이직 순..
HAVING 절 -의미: GROUP BY 절과 함께 HAIVNG절을 사용하여 GROUP BY의 결과를 특정 조건으로 필터링 하는 기능을 한다. HAVING 절 문법 SELECT COLUMN_1 , 집계함수(COLUMN_2) FROM TABLE_NAME GROUP BY COLUMN_1 HAVING 조건식; - HAVING 절은 GROUP BY 절에 의해 생성된 그룹행의 조건을 설정함 - WHERE 절은 GROUP BY 절이 적용되기 전에 개별 행의 조건을 설정함 예시로 한번 살펴보자 HAVING절 실습 - GROUP BY 결과 출력 앞서 GROUP BY 실습 때 진행했던 쿼리이다. AMOUNT_SUM 내림차순 순으로 결과값이 나왔다. HAVING절 실습 - GROUP BY 결과 출력 + HAVING 해당 ..
SQL의 기본 중에 기본인 쿼리 논리 순서! 우선 내가 외우는 방법을 소개해보겠다. 진짜 이 방법으로 도움이 많이 되었으니, SQL 진짜 생초보시거나, SQL D 자격증 공부하는 분들께 추천드린다. 논리적 순서와 함께, 쿼리가 작성되는 순서를 하나씩 이해해보자. SELECT~ FROM 제일 기본형태가 SELECT ~ FROM 형태이다. 얘는 제일 간단한데, SELECT (뽑아라) FROM (어디로부터) 논리적 순서는 ①어디로부터~ ②무엇을 뽑아야하니까 ②SELECT (뽑아라) ①FROM (어디로부터) 자, 조금씩 더 복잡하게 가보자. SELECT ~ FROM ~ WHERE SELECT (뽑아라) FROM (어디로부터) WHERE (이런 조건이 있는 장소에서) 논리적 순서는 ①어디로부터~ ②이런 조건이 있..
GROUP BY 절 - 의미: SELECT 문에서 반환된 행을 그룹으로 나누는 것. 각 그룹에 대한 합계, 평균, 카운트 등을 계산할 수 있다. GROUP BY절 실습 - 단순 GROUP BY - GROUP BY 데이터를 그룹별로 묶을 수 있도록 해주는 절이니까 단순히 CUSTOMER_ID로 한번 해보자 결과값으로 중복값이 제거된 CUSTOMER_ID를 구할 수 있다. 어 근데 우리가 이미 알고있는 중복제거 DISTINCT 함수가 있으니 얘를 사용해보자 중복값 제거하는 DISTINCT 함수를 써도 같은 결과값이 나온다. *SQL에서는 결과값(결과집합)이 같으면 같은 SQL문으로 취급한다. GROUP BY 절 실습 - 합계 구하기 + 정 GROUP BY로 CUSTOMER_ID를 엮어주고, 순서는 SUM(A..
조인 JOIN이란? - 2개 이상의 테이블에 있는 정보 중 사용자가 필요한 집합(=정보)에 맞게 가상의 테이블처럼 결과를 보여주는 것이다 종류에는 INNER JOIN OUTER JOIN SELF JOIN FULLOUTER JOIN CROSS JOIN NATURAL JOIN 이 존재한다. 조인은 쉽게 이해하려면 집합의 개념이라고 보면 편하다! 각각의 JOIN에 대한 설명은 다음 작성글에서 정리해보겠습니다. 바로 오늘의 공부 들어가보자고~! 테이블 A와 B를 제작하고 결과값 표를 확인해보는 과정이다. TABLE BASKET_A를 만들어주고 TABLE BASKET_B도 만들어준다 이러고 작성하다가 중간에 잘못 써서 다시 돌리면 SQL을 돌리면 오류가난다 당연함 왜냐면 내가 테이블을 CREATE했는데 또 만들라..