일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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문과생
- ROLLUP함수
- 문과 코딩독학
- DBeaver
- SQL혼자서
- 마케팅코딩
- 마케터SQL
- inner join
- SQL D 자격증
- 문과SQL
- SQL D 독학
- SQL COUNT함수
- SQL자격증
- MySQL
- 조인
- SQL D자격증
- 문과코딩
- sql독학
- PostgreSQL
- outer join
- DEBEAVER
- SQL
- SQL 분석함수
- sql함수
- SQL D
- group by
- 코딩독학
- SQL독학으로 자격증
- join
- 마케터코딩
- Today
- Total
목록SQL 공부 (19)
문과생의 우당탕탕 공부 기록

분석함수란? - 특정 집합 내에서 결과 건수의 변화 없이, 해당 집합안에서 합계 및 카운트 등을 계산할 수 있는 함수이다. 분석함수를 이해하기 위해, 테이블을 하나 작성해보자. 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..

NATURAL JOIN의 의미 - 두 개의 테이블에서 같은 이름을 가진 컬럼 간의 INNER JOIN집합 결과를 출력. SQL 문 자체가 간소해짐 (BUT 실무에서는 잘 안씀) 마찬가지로 테이블을 만들어서 연습해보자 CATEGORIES와 PRODUCTS라는 이름을 가진 테이블을 만들고 각각에 맞는 조건들을 정리해준다. 각각 테이블에 VALUES를 넣어준다. CATEGORY_ID와 PRODUCT_ID는 각각 SERIAL 을 매길 수 있도록 PRIMARY KEY로 지정해준다. 테이블이 잘 만들어졌는지 확인해보자 잘 만들어졌다. 여기서 PRODUCTS와 CATEGORIES를 내추럴 조인하면, CATEGORY_ID가 동일하기 때문에 동일한 것들이 INNER JOIN으로 나온다. 그렇지만. 실무에서는 NATURA..

CROSS JOIN은 말 그대로 서로의 집합을 크로스해서 조인하는 것이다. CROSS JOIN의 의미 두개의 테이블의 CATESIAN PRODUCT 연산의 결과를 출력한다. 데이터 복제에 많이 쓰이는 기법이다. 테이블을 하나 제작해서 예시로 연습해보자. CROSS_T1과 CROSS_T2라는 이름의 테이블을 만들자 TI의 테이블은 CHARACTER(1BYTE)를 PRIMARY KEY로 채우고 T2의 테이블은 정수인 SCORE를 PRIMARY KEY로 채운다 T1에 각각 A,B라는 레이블을 채우고 T2에 각각 1,2,3이라는 스코어를 채운다. 제대로 만들어졌는지 확인해보자. T1과 T2둘다 잘 만들어졌다. 자 두개를 CROSS JOIN하니까 다음과 같은 결과가 만들어졌다. LABEL | SCORE A 1 B..