[SQL] 날짜 이용한 응용 SQL 작성 #1

|
반응형

 

 

[SQL] 날짜 이용한 응용 SQL 작성 #1

 

업무를 보다 보면 일자를 가지고 여러 형태의 데이터를 추출해야 하는 경우가 많다. 시간별, 일별, 월별 총매출액을 구한다면

일단 골이 많이 아프다. 그걸 좀 더 편하고 간단하게 추출 하는 방법을 알아 보도록 하자.

 

 

(1). ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY-MM-DD'; 는 일자 포멧을 년-월-일로 바꿔서 처리를 하겠다라는 의미다.

(2). &DATE_YYYYMM은 변수값을 받아서 처리할때 많이 사용하는 기법이다. 이걸 TO_DATE로 받는 이유는 쭉~ 읽어보면 나온다.

 

 

 

 

(1). 7월에 대한 총 일자를 구하는 SQL

(2). 변수값 처리는 나중에 하고 일단 201207을 입력 하여 처리하도록 하였다.

(3). DATE로 받은 년월(201207)을 CONNECT BY LEVEL을 이용하여 7월에 시작인 1일 부터 끝인 31일까지 받는 매우 편리한 유형의 SQL이다.

 

 

 

 

 

(1). 7월에 1일부터 31일까 데이터를 받고 WEEK 컬럼을 통하여 해당 주에 시작점을 일괄적으로 나열하는 형태의 SQL

(이런 형태로 작성하면 해당일자의 주를 구하기가 매우 편리하다.)

(2). TRUNC(MONTHS + LEVEL -1, 'D')는 해당 년월일에 주에 해당 하는 부분에 첫일자를 계산해준다. 이렇게 하면 WEEK이라는 컬럼에 총 5개의

      각기 다른 형태의 데이터를 구할수 있다. 이건 나중에 해당 주차를 구할때 요긴하게 사용할수가 있다. 어떻게? 이런식으로...

 

 

 

주차를 응용하여 달력을 만드는 SQL 결과물이고 왼쪽의 주차 컬럼은 주별로 데이터를 구하기 위한것이다.

 

 

 

 

 

 

(1). 2012년 7월에 대한 해당 주차를 구하는 SQL

(2). 인라인뷰로 감싼 다음에 DENSE_RANK라는 윈도우 함수를 이용하여 2012년 7월에 대한 1~5주차에 대한 데이터를 구분하여 처리 하였다.

 

 

 

(1). 2012년7월에 해당하는 주차의 시작 일자와 종료 일자를 구하는 SQL

(2). MIN, MAX값으로 해당 주의 시작일자 종료일자를 처리할수 있다.

 

 

 

 

 

 

 

 

 

 

 

반응형
And