728x90
반응형

SALE_HIST의 자료를 이용하여 사업장의 상품 판매금액과 아이템순으로 일자별 판매누적금액을 출력하시오

SELECT SALE_DATE, SALE_SITE, SALE_ITEM, SALE_AMT,

          SUM(SALE_AMT) OVER (PARTITION BY SALE_DATE ORDER BY SALE_ITEM

                                          ROWS UNBOUNDED PRECEDING) AS 누적합계

FROM SALE_HIST

 

 

SALE_HIST의 자료를 이용하여 사업장의 상품 판매금액과 일자순으로 아이템별 판매누적금액을 출력하시오

SELECT SALE_DATE, SALE_SITE, SALE_ITEM, SALE_AMT,

          SUM(SALE_AMT) OVER (PARTITION BY SALE_ITEM ORDER BY SALE_DATE

                                           ROWS UNBOUNDED PRECEDING) AS 누적합계

FROM SALE_HIST

 

 

SALE_HIST의 자료를 이용하여 사업장의 상품 판매금액과 일자와 아이템별 판매누적금액을 출력하시오

SELECT SALE_DATE, SALE_SITE, SALE_ITEM, SALE_AMT,

          SUM(SALE_AMT) OVER (PARTITION BY SALE_ITEM, SALE_DATE ORDER BY SALE_AMT

                                           ROWS UNBOUNDED PRECEDING) AS 누적합계

FROM SALE_HIST

 

 

SALE_HIST의 자료를 이용하여 ‘01 사업장‘ ’PENCIL’ 품목의 아이템별 판매금액과 누적 판매금액을 구하여라

SELECT SALE_DATE, SALE_SITE, SALE_ITEM, SALE_AMT,

          SUM(SALE_AMT) OVER (PARTITION BY SALE_ITEM ORDER BY SALE_DATE

                                           RANGE INTERVAL '5' DAY PRECEDING) AS 누적합계

FROM SALE_HIST

WHERE SALE_ITEM = 'PENCIL'

AND SALE_SITE = '01’

 

 

일자별 사업장별 매출액과 사업장별 매출액의 3일 이동평균 금액을 구하라 (SALE_HIST)

SELECT SALE_DATE, SALE_SITE, SUM(SALE_AMT),

          ROUND(AVG(SUM(SALE_AMT)) OVER (PARTITION BY SALE_SITE ORDER BY SALE_DATE

                                                            RANGE INTERVAL '2' DAY PRECEDING) AS 이동평균

FROM SALE_HIST

GROUP BY SALE_DATE, SALE_SITE

 

 

EMP테이블에서 직속상관 MGR, 자기이름 ENAME, 자기급여 SAL 출력하여라 단, 같은 MGR별 직속부하들 중 최고 급여를 받는 사람들의 정보를 출력할 것

SELECT MGR, ENAME, SAL

FROM (SELECT MGR, ENAME, SAL,

                    MAX(SAL) OVER (PARTITION BY MGR) AS IV_MAX_SAL

           FROM EMP)

WHERE SAL = IV_MAX_SAL;

 

 

A_TB의 자료를 이용하여 매월의 A_OUT과 분기별 누계를 구하시오

SELECT A_MON, A_OUT,

          SUM(A_OUT) OVER (PARTITION BY TO_CHAR(TO_DATE(A_MON,'YYYYMM'),'Q')

                                      ORDER BY TO_DATE(A_MON,'YYYYMM')

                                      RANGE INTERVAL '2' MONTH PRECEDING) AS C1

FROM A_TB

 

 

TEST02의 20010901부터 20010911까지의 자료를 이용해 해당 일자 보다 작거나 같은 날의 환율을 순서대로 6개까기지 보여주는 QUERY를 만들어 보자

SELECT CDATE, AMT, CRATE

          , LAG(CRATE,1) OVER (ORDER BY CDATE) AS "-1 DAY"

          , LAG(CRATE,2) OVER (ORDER BY CDATE) AS "-2 DAY"

          , LAG(CRATE,3) OVER (ORDER BY CDATE) AS "-3 DAY"

          , LAG(CRATE,4) OVER (ORDER BY CDATE) AS "-4 DAY"

          , LAG(CRATE,5) OVER (ORDER BY CDATE) AS "-5 DAY"

          , LAG(CRATE,6) OVER (ORDER BY CDATE) AS "-6 DAY"

FROM TEST02

WHERE CDATE BETWEEN '20010901' AND '20010911’

 

 

TEST02의 20010901부터 20010911까지의 자료를 이용해 해당 일자 보다 크거나 같은 날의 환율을 순서대로 6개까기지 보여주는 QUERY를 만들어 보자

SELECT CDATE, AMT, CRATE

, LEAD(CRATE,1) OVER (ORDER BY CDATE) AS "+1 DAY"

, LEAD(CRATE,2) OVER (ORDER BY CDATE) AS "+2 DAY"

, LEAD(CRATE,3) OVER (ORDER BY CDATE) AS "+3 DAY"

, LEAD(CRATE,4) OVER (ORDER BY CDATE) AS "+4 DAY"

, LEAD(CRATE,5) OVER (ORDER BY CDATE) AS "+5 DAY"

, LEAD(CRATE,6) OVER (ORDER BY CDATE) AS "+6 DAY"

FROM TEST02

WHERE CDATE BETWEEN '20010901' AND '20010911'

 

 

TEST02 테이블을 이용해서 20010905부터 20010910까지 데이터를 출력하되 널값은 제외하고 출력하시오

현재일자의 금액에 전일 환율을 곱한 환산금액을 구하여 현재 일자, 현재 금액, 전일 환율, 환산금액을 출력하여라

SELECT C_DATE, C_AMT, 금일환율, 전일환율, 환산금액

FROM (SELECT CDATE C_DATE, AMT C_AMT, CRATE 금일환율

                    ,LAG(CRATE,1) OVER(ORDER BY CDATE) AS 전일환율

                    ,AMT*LAG(CRATE,1) OVER(ORDER BY CDATE) AS 환산금액

          FROM TEST02

          WHERE CDATE BETWEEN '20010904' AND '20010910'

          )

WHERE 환산금액 IS NOT NULL

 

 

TEMP의 EMP_ID를 이용해 자신의 사번과 자신보다 한 단계 빠른 사번을 가진 직원의 사번과 성명을 보여주는 QUERY를 만들어라 ( LAG(), MIN(), MAX() 함수 활용을 생각해보자 )

SELECT EMP_ID, EMP_NAME

          ,LAG(EMP_ID,1) OVER (ORDER BY EMP_ID) AS 이전사원사번

          ,LAG(EMP_NAME,1) OVER (ORDER BY EMP_ID) AS 이전사원이름

FROM TEMP

 

,MIN(EMP_ID) OVER (ORDER BY EMP_ID

                             ROWS BETWEEN 1 PRECEDING

                                       AND 1 PRECEDING) AS 전사원사번

 

,MAX(EMP_ID) OVER (ORDER BY EMP_ID

                              ROWS BETWEEN UNBOUNDED PRECEDING

                                        AND 1 PRECEDING) AS 이전사원사번

 

 

TEMP의 자료를 이용하여 자신의 사번, 성명, SALARY를 읽고, 자신을 포함한 이후 사번 중 SALARY가 가장 큰 금액을 함께 보여라

SELECT EMP_ID, EMP_NAME, SALARY

          ,MAX(SALARY) OVER (ORDER BY EMP_ID

                                       ROWS BETWEEN CURRENT ROW

                                                 AND UNBOUNDED FOLLOWING ) AS 이후최고금액

FROM TEMP

 

 

728x90
반응형

+ Recent posts

Powered by Tistory, Designed by wallel