본문 바로가기

SQL13

SCOTT스키마예제를 통해 계층구조 쿼리 정리 오라클 데이터베이스에는 계층구조를 파악하게 해주기 위해 connect by 절을 지원합니다. Oracle의 SAMPLE 스키마인 SCOTT의 EMP테이블을 통해 계층구조 쿼리에 대해서 알아보고 정리하겠습니다. 구문정리 WHERE : 데이터를 가져온 뒤 마지막으로 조건절에 맞게 정리 START WITH : 계층질의의 루트로 사용될 행을 지정,서브쿼리를 사용할 수 있음 CONNECT BY : 각 행들의 연결관계를 설정,서브쿼리를 사용할 수 없음 - CONNECT BY PRIOR 자식컬럼=부모컬럼 : 부모에서 자식으로 트리구성 - CONNECT BY PRIOR 부모컬럼=자식컬럼 : 자식에서 부모로 트리구성 LEVEL : 계층구조 쿼리에서 수행결과의 깊이를 의미 ORDER SIBLINGS BY : 계층구조 쿼리.. 2020. 11. 25.
ROLLUP ROLLUP? 소계(중간합계)와 전체합계를 구하는 방법 중 SQL만 사용해서 구할 수 있는 기능이 ROLLUP입니다. ROLLUP은 GROUP BY 뒤에 ROLLUP이라고 적어서 사용합니다. 예를들어 GROUP BY ROLLUP(A,B,C,D)라고 사용하면 다음과 같은 데이터들이 조회됩니다. - GROUP BY 된 A+B+C+D별 데이터 - A+B+C 별 소계 데이터 - A+B 별 소계 데이터 - A별 소계 데이터 - 전체 합계 SQL> select to_char(t1.ord_dt,'YYYYMM') 주문년월 ,t1.cus_id 고객ID ,sum(t1.ord_amt) 주문금액 from t_ord t1 where t1.cus_id in ('CUS_0001','CUS_0002') and t1.ord_dt >=.. 2020. 11. 20.
COUNT 집계함수 count는 해당 컬럼의 갯수를 구하는 집계함수입니다. COUNT함수가 NULL 값을 어떻게 카운트하는지 보겠습니다. count함수는 NULL을 0으로 카운트합니다. col2와 col3를 보면 NULL값이 2개,1개 들어있으므로 count결과값이 null값을 제외하고 나온것을 확인할 수 있습니다. --NULL에 대한 COUNT select count(col1) cnt_col1 , count(col2) cnt_col2 , count(col3) cnt_col3 from ( select 'A' col1, null col2, 'C' col3 from dual union all select 'B' col1, null col2, null col3 from dual ); CNT_COL1 CNT_COL2 CNT_COL.. 2020. 11. 11.
GROUP BY 컬럼의 변형 GROUP BY에 컬럼을 정의할 때 컬럼을 변형할 수 있습니다. TO_CHAR,TO_DATE와 같은 오라클 기본함수 뿐만 아니라, CASE(또는 DECODE)와 같은 치환 문법도 사용할 수 있습니다. 문자와 문자를 결합하거나 산술연산도 할 수 있습니다. --GROUP BY에 CASE를 사용한 예 select 지불방법 ,case when 지불금액 >= 5000 then 'High' when 지불금액 >= 3000 then 'Middle' else 'Low' end 지불금액_TEMP ,count(*) 주문수 from 주문테이블 group by 지불방법, ,case when 지불금액 >= 5000 then 'High' when 지불금액 >= 3000 then 'Middle' else 'Low' end orde.. 2020. 11. 9.