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 40206 게시물 읽기
No. 40206
일부분씩 평균을 내는 방법 문의
작성자
HaHa
작성일
2013-07-23 16:54
조회수
6,231
안녕하세요.
이런 방법이 가능할지 궁금해서 글 올립니다.
 
아래와 같은 데이터가 있을 때(10분에 한번씩 데이터가 누적)
 
날짜        시간 값
----------  ---- ------ 
2013-06-30  000  0.8148
2013-06-30  001  1
2013-06-30  002  1
2013-06-30  003  1
2013-06-30  004  1
2013-06-30  005  1
2013-06-30  010  0.80775
2013-06-30  011  1
2013-06-30  012  1
2013-06-30  013  1
2013-06-30  014  1
2013-06-30  015  1
2013-06-30  020  0.803
2013-06-30  021  1
2013-06-30  022  1
2013-06-30  023  1
2013-06-30  024  1
2013-06-30  025  1
2013-06-30  030  0.8585
 
 
원하는 결과 
 
날짜        시간      평균값
----------  ------- ------- 
2013-06-30  000~001  0.8148
2013-06-30  002~003  0.8148
2013-06-30  004~005  0.8148
2013-06-30  010~011  0.8148
2013-06-30  012~013  0.8148
2013-06-30  014~015  0.8148
........
 
이런 방법으로 몇개씩 데이터를 묶어서 평균을 뽑아낼 수 있을까요?
 
이 글에 대한 댓글이 총 4건 있습니다.

1~2초는 없는거낙요

채용근(taiji97)님이 2013-07-23 17:13에 작성한 댓글입니다.

with test as (

SELECT '2013-06-30' 날짜, '000' 시간 , '0.8148' 값 FROM DUAL UNION ALL

SELECT '2013-06-30', '001' , '1' FROM DUAL UNION ALL

SELECT '2013-06-30', '002' , '1' FROM DUAL UNION ALL

SELECT '2013-06-30', '003' , '1' FROM DUAL UNION ALL

SELECT '2013-06-30', '004' , '1' FROM DUAL UNION ALL

SELECT '2013-06-30', '005' , '1' FROM DUAL UNION ALL

SELECT '2013-06-30', '010' , '0.80775' FROM DUAL UNION ALL

SELECT '2013-06-30', '011' , '1' FROM DUAL UNION ALL

SELECT '2013-06-30', '012' , '1' FROM DUAL UNION ALL

SELECT '2013-06-30', '013' , '1' FROM DUAL UNION ALL

SELECT '2013-06-30', '014' , '1' FROM DUAL UNION ALL

SELECT '2013-06-30', '015' , '1' FROM DUAL UNION ALL

SELECT '2013-06-30', '020' , '0.803' FROM DUAL UNION ALL

SELECT '2013-06-30', '021' , '1' FROM DUAL UNION ALL

SELECT '2013-06-30', '022' , '1' FROM DUAL UNION ALL

SELECT '2013-06-30', '023' , '1' FROM DUAL UNION ALL

SELECT '2013-06-30', '024' , '1' FROM DUAL UNION ALL

SELECT '2013-06-30', '025' , '1' FROM DUAL UNION ALL

SELECT '2013-06-30', '030' , '0.8585' FROM DUAL

)

SELECT ceil ( rownum / 2 )

, MAX ( 날짜 )

, MIN ( 시간 )

, MAX ( 시간 )

FROM (

SELECT *

FROM test

ORDER BY 날짜

, 시간

)

GROUP BY ceil ( rownum / 2 )

ORDER BY 4

채용근(taiji97)님이 2013-07-23 17:19에 작성한 댓글입니다.

SELECT dt
     , MIN(tm) ||'~'|| MAX(tm) tm
     , AVG(v) v
  FROM t
 GROUP BY dt, FLOOR(tm / 2)
 ORDER BY dt, tm
;

마농(manon94)님이 2013-07-23 17:23에 작성한 댓글입니다.

 답변 감사드립니다.

HaHa님이 2013-07-23 17:55에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
40209동적쿼리를 oracle 원래 문법으로 표현이 안되나요? [1]
김지운
2013-07-26
5997
40208데이터 베이스 export 하였는데 이런 에러가 나네요. 이런 경우는 언제 나는 경우인가요? [1]
김정은
2013-07-26
7506
40207특정구간별 합계구하기 문의합니다. [2]
우암
2013-07-24
7387
40206일부분씩 평균을 내는 방법 문의 [4]
HaHa
2013-07-23
6231
40205오라클 날짜 구하기 문의 드립니다. [1]
초보
2013-07-23
6310
402041시간 반 전을 어떻게 표현해야 하나요? [2]
화악산
2013-07-23
6009
40203문자열 자르기 [4]
초보
2013-07-22
7801
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.018초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다