본문 바로가기

SQLP12

서술형문제4 SQL 작성 주문 테이블 구조는 아래와 같으며, 파티셔닝 하지 않았다. 하루 주문 건수는 평균 2만 건이며, 10년치 데이터가 저장돼 있다. 주문 데이터를 조회하는 화면은 아래와 같다. 고객번호는 입력하지 않을 수 있지만, 주문일자는 항상 입력해야 한다. 주문일자로는 보통 3일을 입력하며, 최대 1주일까지 입력할 수 있다. 1.조회버튼을 누를 때 수행할 최적의 SQL을 작성하시오. 개발 정책 상 Dynamic SQL은 사용할 수 없다. 주문일시 기준 역순으로 정렬해야 하며, 부분범위처리는 허용되지 않는다. 즉 조회된 결과 집합 전체를 그리드(Grid)에 출력해야 한다. 2.최적의 인덱스 구성안을 제시하시오. 화면 튜닝 Point 1.전체범위처리로 처리해야 함 2. 고객번호는 입력하지 않을 수 있지만 주문일자는 항상 .. 2021. 8. 13.
서술형문제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.