database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
ㆍOracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
Oracle Q&A 41201 게시물 읽기
No. 41201
쿼리 문의
작성자
쿼리OTL
작성일
2016-07-27 12:48ⓒ
2016-07-27 12:48ⓜ
조회수
6,687

 

key(사람)별로 날짜 구간값을 구하려고 합니다.

레코드 ROW 기준으로 위아래 차를 구하는데 쉽지 않네요.

미리 감사합니다. ^^

 

 

인풋테이블

사람       날짜

A           201606 -- 아래와 3월차

A           201603  -- 아래와 9월차

A           201506

B           201601 -- 아래와 1개월차

B           201512

 

원하는 결과

 

사람  평균_날짜구간차

A      AVG(3+9)

B      AVG(1)

이 글에 대한 댓글이 총 1건 있습니다.

위아래 개월차를 구하려면
  - LAG/LEAD 등의 분석함수를 이용하면 구할 수 있습니다만...
최종 목적이 위아래 개월차의 평균이라면?
  - 굳이 위아래 개월차를 구할 필요는 없습니다.
  - MIN/MAX 개월차를 구해 (건수-1)로 나누어 주면 됩니다.


WITH t AS
(
SELECT 'A' id, '201606' ym FROM dual
UNION ALL SELECT 'A', '201603' FROM dual
UNION ALL SELECT 'A', '201506' FROM dual
UNION ALL SELECT 'B', '201601' FROM dual
UNION ALL SELECT 'B', '201512' FROM dual
)
SELECT id
     , MONTHS_BETWEEN( TO_DATE(MAX(ym), 'yyyymm')
                     , TO_DATE(MIN(ym), 'yyyymm')
                     ) / (COUNT(*)-1) AS avg_mm
  FROM t
 GROUP BY id
 ORDER BY id
;

마농(manon94)님이 2016-07-27 13:39에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
41204프로시져 에서 인자값으로 조회조건 변경 [1]
초보
2016-07-28
6422
41203create diretory 관련 문의
정재영
2016-07-28
6626
41202Table 백업을 위한 Export시 보안방법 문의
보안초보
2016-07-27
6417
41201쿼리 문의 [1]
쿼리OTL
2016-07-27
6687
41200스키마 확인 [1]
봉달이2
2016-07-22
6831
41199기준일에서 일정한 간격으로 조회하려고 합니다. [2]
선이
2016-07-21
6961
41198초보자입니다.(급하기도 하구요) [7]
신무기
2016-07-19
7974
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.020초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다