서술형문제3 전체범위처리 SQL 작성
문제 같은 데이터를 두번 읽지 않고서 같은 결과집합을 출력하도록 아래 두 SQL을 각각 작성하시오. (단, 부분범위처리가 불가능한 상황 전체범위처리 기준으로 튜닝할 것) -'주문일자'의 데이터 타입은 문자형 8자리 - 거래 업체는 10,000개 - 월평균 주문건수는 100만 건 SQL 1 select b.주문번호,b.업체번호,b.주문일자,b.주문금액,b.총주문횟수,a.평균주문금액,a.최대주문금액 from ( select 업체번호,count(*) 총주문횟수, avg(주문금액) 평균주문금액, max(주문금액) 최대주문금액 from 주문 where 주문일자 like '201509%' group by 업체번호 ) a, 주문 b where b.업체번호 = a.업체번호 and b.주문일자 like '201509%'..
2021. 8. 12.
서술형문제2 TRACE 결과 분석
아래 SQL과 트레이스 결과를 분석해서 개선된 SQL을 작성하시오 1) 원하는 실행계획이 정확히 나오도록 힌트도 함께 기술할 것. 2) 최적의 인덱스 구성방안도 함께 제시할 것 (성능 개선에 도움이 되지 않는 필요 이상의 컬럼을 추가하는 것은 감점요인) [SQL문] select o.주문일시, o.주문번호, c.고객번호, c.고객명, c.연락처, o.주문금액, o.배송지 from 고객 c,주문 o where o.주문일시 between to_date('20150301','yyyymmdd') and to_date('20150314235959','yyyymmddhh24miss') and o.고객번호 = c.고객번호 and c.거주지역코드||c.고객명 in ('02김철수','05홍길동') order by o.주문..
2021. 8. 11.
서술형문제 1번 (누적매출 구하는 SQL)
문제 아래 좌측과 같은 월별지점매출 테이블을 읽어서 우측과 같은 형태, 즉 각 지점별로 판매월과 함께 증가하는 누적매출(running total)을 구하는 SQL을 두가지 방식으로 작성하라 1) 윈도우 함수를 이용한 방식 2) 윈도우 함수나 스칼라 서브쿼리를 지원하지 않는 DBMS에서 활용할 수 있는 방식으로 작성(단, 전체범위처리에 최적화된 방식으로 작성할 것) WITH 월별지점매출 AS ( SELECT '10' as 지점, '1' as 판매월, '521' as 매출 FROM dual UNION ALL SELECT '10', '2','684' FROM dual UNION ALL SELECT '10', '3','590' FROM dual UNION ALL SELECT '20', '1','537' FROM..
2021. 8. 10.