DataBase/SQL
-
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 등의 문장으로 생성됨)익스텐스 : 연속된 데이터 블록의 집합, 세그먼트를 처음 만들거나, 세그먼트 저장공간이 더 필요한 경우 연속된 블록의 주소를 갖는 데이터 블록을 할당 받아 세그먼트에 추가데이터블록: 데이터의 최소단위 * 사용자가 입력한 데이터는 테이블에 저장되고 테이블은 물리적 파일 안에서 데이터 블록 ..