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 40590 게시물 읽기
No. 40590
[질문] 출근 시간 평균을 낼려면 어떻게 해야 할까요?
작성자
정규성
작성일
2014-10-16 09:23
조회수
7,350

자료 검색을 해 보면..

 

출근 (도착) 시간 평균을 내는 쿼리는 거의 찾아 보기가 힘들던데요..

 

쉽지가 않네요..

 

예) 출근시간

홍길동 AM 08:50

김만수 AM 08:30

김민희 AM 08:40

....

....

 

이렇게 시간이 들어가 있는데..

 

평균 출근 시간을 계산 하게 되면..세명의 경우 AM 08:40 분이 되겠죠..

 

이걸 쿼리로 구하려고 하는데..쉽지가 않네요..

 

아시는 분 댓글좀 부탁 드립니다.

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

WITH testView AS (
  SELECT 1 AS seq, '테스터1' AS nm, TO_DATE('2014-10-16 08:30:00') AS checkTime FROM dual
  UNION ALL
  SELECT 2 AS seq, '테스터2' AS nm, TO_DATE('2014-10-16 08:50:00') AS checkTime FROM dual
  UNION ALL
  SELECT 3 AS seq, '테스터3' AS nm, TO_DATE('2014-10-16 08:40:00') AS checkTime FROM dual
)
SELECT REPLACE(TO_CHAR(FLOOR(ROUND(checkMin/cnt,0)/60),'00') || ':' || TO_CHAR(ROUND(checkMin/cnt,0)-(60*FLOOR(ROUND(checkMin/cnt,0)/60)),'00'), ' ') AS avg_time
  FROM (
        SELECT SUM(TO_CHAR(checkTime, 'hh24') * 60 + TO_CHAR(checkTime, 'mi')) AS checkMin
          FROM testView
         WHERE TO_CHAR(checkTime, 'yyyymmdd') = TO_CHAR(SYSDATE, 'yyyymmdd')
       ),
       (
        SELECT COUNT(1) AS cnt
          FROM testView
         WHERE TO_CHAR(checkTime, 'yyyymmdd') = TO_CHAR(SYSDATE, 'yyyymmdd')
       )
 

몹시맙시맙시해(fafan1984)님이 2014-10-16 10:09에 작성한 댓글입니다.

답변 감사합니다.

 

한번 해 봐야겠네요..

 

감사하구요.

 

수고하십시요.

정규성님이 2014-10-16 10:43에 작성한 댓글입니다. Edit

 WITH dt AS (

  SELECT 1 AS seq, '테스터1' AS nm, TO_DATE('2014/10/16 08:30:00','yyyy/mm/dd hh24:mi:ss') AS ct FROM dual
  UNION ALL
  SELECT 2 AS seq, '테스터2' AS nm, TO_DATE('2014/10/16 08:50:00','yyyy/mm/dd hh24:mi:ss') AS ct FROM dual
  UNION ALL
  SELECT 3 AS seq, '테스터3' AS nm, TO_DATE('2014/10/16 08:40:00','yyyy/mm/dd hh24:mi:ss') AS ct FROM dual
)
SELECT to_date('1990-01-01','yyyy-mm-dd') + avg(( floor( ct - to_date('1990-01-01','yyyy-mm-dd') )) * 24 * 60 * 60 + to_char(ct,'hh24') * 60 * 60 + to_char(ct,'mi') * 60 + to_char(ct,'ss')) / ( 24 * 60 * 60 )  avg_day 
  from dt
 
오문석님이 2014-10-21 14:55에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
40593오라클 테이블 조인 문제 질문드려요^^
오라초보
2014-10-22
6703
40592컬럼 타입 varchar2의 25 char과 25 byte 비교 [1]
조형래
2014-10-21
6789
40591오라클 설치시 왜 시스템 파라미터를 지정하는건가요 ?? 왜 ? 기초 질문..
yeon jeong
2014-10-16
6886
40590[질문] 출근 시간 평균을 낼려면 어떻게 해야 할까요? [3]
정규성
2014-10-16
7350
40589오라클 시퀀스에 대해 문의 드립니다.
정봉경
2014-10-16
6876
40588오라클 8 버전에서 100만건 이상 한번에 업데이트 [1]
박정원
2014-10-15
7450
40587분류명만 있는 데이터를 부모 일련번호를 포함한 데이터로 가공해야 하는데 도와주세요.
김성욱
2014-10-14
6488
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.020초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다