DataBase/SQL
-
SQLBOOSTER - RANGE JOINDataBase/SQL 2024. 6. 6. 14:52
대부분 조인은 같다를 조건으로 이용하지만, 반드시 같다 조건으로만 조인을 할 수 있는 것은 아니다. 범위 (Like, )조건을 줄 수도 있으며 때에 따라 같지않다를 사용할 수도 있다. 범위 조건을 이용해 조인하는 것을 RANGE JOIN이라 부른다. 먼저 RANGE JOIN 사용 전 이전 GROUP BY로 금액 유형에 따라 High,Low,Middle로 나누었던 쿼리를 살펴보자 SELECT ORD_ST, CASE WHEN ORD_AMT >= 5000 THEN 'HIGH' WHEN ORD_AMT >= 3000 THEN 'Middle Order' ELSE 'Low Order' END ORD_AMT_TP, COUNT(*) ORD_CNTFROM T_ORDGROUP BY ORD..
-
SQLBOOSTER - INNER JOINDataBase/SQL 2024. 6. 4. 23:27
INNER-JOIN 이란 이너 조인은 조인 조건을 만족하는 데이터만 결합하여 결과를 내보낸다. (T1.CUS_ID = T2.CUS_ID)WHERE 절에서 사용하는 조건은 필터 조건과 조인 조건 두 가지가 있다. FROM 절에 사용된 테이블이 두 개 이상이면 필터 조건과 조인 조건이 동시에 있을 수 있다.SELECT T1.COL_1, T2_COL_1FROM ( SELECT 'A' COL_1 FROM DUAL UNION ALL SELECT 'B' COL_1 FROM DUAL UNION ALL SELECT 'A' COL_1 FROM DUAL )T1,( SELECT 'A' COL_1 FROM DUAL UNION ALL SELECT 'B' COL_1 FROM DUAL UNION ALL SEL..
-
SQL BOOSTER - 소계 구하기 ROLLUP, UNION ALL, 카테시안 조인,CUBE,GROUPING SETSDataBase/SQL 2024. 6. 3. 22:32
1. ROLLUP 이해하기 대부분의 분석 리포트는 소계(중간합계)와 전체합계가 필요하다. 이를 BI툴 없이 순수 SQL만 사용해야한다면, ROLLUP이 가장 효율적이다. ROOLUP은 GROUP BY 뒤에 ROLLUP이라고 적어서 사용한다. GROUP BY ROLLUP(A,B,C,D)로 적으면GROUP BY된 A+B+C+D별 데이터 A+B+C별 소계 데이터A+B별 소계데이터A별 소계데이터전체합계로 나온다. SELECT TO_CHAR(T1.ORD_DT,'YYYYMM') ORD_YM,T1.CUS_ID,SUM(T1.ORD_AMT) ORD_AMTFROM T_ORD T1WHERE T1.CUS_ID IN('CUS_0001','CUS_0002')AND T1.ORD_DT >= TO_DATE('20170301','YY..
-
SQL BOOSTER - GROUP BY와 ROLLUPDataBase/SQL 2024. 6. 2. 18:37
프로젝트를 수행하는데 최소한의 SQL임! 잘 알아두자 1. GROUP BY 데이터를 그룹화하는 문법이다. (같은 값을 가진 데이터끼리 모으는 것을 의미)중복된 값이 제거된 결과로 나오면서, 집계함수를 사용한다.SELECT T1.ORD_DT, T1.PAY_TP,SUM(T1.ORD_AMT)ORD_AMTFROM T_ORD T1WHERE T1.ORD_ST = 'COMP'GROUP BY T1.ORD_DT, T1.PAY_TPORDER BY T1.ORD_DT, T1.PAY_TP;T1.ORD_DT로 1차 그룹화 후 T1.PAY_TP로 2차 그룹화 (주문일시, 지불유형별 주문 금액 합계)자주 쓰는 집계함수는 다음과 같다.SUM,COUNT,MIN,MAXOVER 절과 함께 사용하는 SUM,LEAD,LAG와 같은 분석함..
-
SQL BOOSTER - 기본 셋팅 (테이블 스페이스, 데이터 블록)DataBase/SQL 2024. 6. 2. 16:27
1. 테이블 스페이스 생성 테이블 스페이스란? 테이블, 인덱스, 프로시저, 뷰 등의 객체들을 저장해놓은 오라클의 논리적인 저장공간데이터를 물리적으로 저장하는 단위이다. 하나의 테이블 스페이스는 여러 개의 세그먼트로 구성세그면트는 다시 익스텐스로 분리되고 익스텐스는 데이터 블럭으로 구성된다. 확장자는 dbf 혹은 ora이다. 세그먼트 : 하나의 테이블, 인덱스에 대응한다. (create table 등의 문장으로 생성됨)익스텐스 : 연속된 데이터 블록의 집합, 세그먼트를 처음 만들거나, 세그먼트 저장공간이 더 필요한 경우 연속된 블록의 주소를 갖는 데이터 블록을 할당 받아 세그먼트에 추가데이터블록: 데이터의 최소단위 * 사용자가 입력한 데이터는 테이블에 저장되고 테이블은 물리적 파일 안에서 데이터 블록 ..