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 41044 게시물 읽기
No. 41044
시간별 합산하려고 하는데요.
작성자
mayse
작성일
2016-01-05 13:09ⓒ
2016-01-05 15:43ⓜ
조회수
8,256

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

-1/24 로 조회시 1시간 동안의 자료를 조회하므로
시간별 그룹바이 결과는 1건씩이 나옵니다.
a 1건과 b 1건을 조인하면 1:1 관계로 1건이 조회됩니다.


-2/24 로 조회시 2시간 동안의 자료를 조회하므로
시간별 그룹바이 결과는 2건씩이 나옵니다.
a 2건과 b 2건을 조인하면 2:2 관계로 카티션곱이 발생하여 4건이 됩니다.
각 데이터가 2배씩 뻥튀기 되는거죠.


WHERE 절이 없이 바로 AND 가 나오는 이유는 뭘까요?
같은 테이블을 두번에 나누어 읽는 의도를 모르겠네요.
그륩바이 항목과 조회항목이 다른 이유는 뭘까요? ("MONDATE" <> "MEASDATE")
전반적으로 쿼리가 이상하네요.

마농(manon94)님이 2016-01-05 15:01에 작성한 댓글입니다.

수정 완료하였습니다.

쿼리 만들고 있는데.. 만든거에 수정하려고 하는데,,

빼도 상관없는 건 빼고... 최대한 간결하게 쓰려고 했던 것이 쿼리가 이상하게 되어 버렸네요..

그래서 수정했습니다.

잘 보시면 아시겠지만, 같은 쿼리가 아니예요.

project 컬럼에 NEW 들어가면 data1, data2 에 *3하고, project 컬럼에 NEW 들어가지 않으면 data1, data2의 data를 그대로 쓰는 겁니다.

 

박경오님이 2016-01-05 15:26에 작성한 댓글입니다. Edit

SELECT SUBSTR(mondate, 1, 8) AS 일자
     , SUBSTR(mondate, 9, 2) AS 시간
     , SUM(data1 * CASE WHEN project LIKE '%NEW%' THEN 3 ELSE 1 END) AS 합산1
     , SUM(data2 * CASE WHEN project LIKE '%NEW%' THEN 3 ELSE 1 END) AS 합산2
     , COUNT(*) AS cnt
  FROM kkk_check
 WHERE mondate >= TO_CHAR(sysdate-2/24, 'yyyymmddhh24')
   AND mondate <  TO_CHAR(sysdate     , 'yyyymmddhh24')
 GROUP BY SUBSTR(mondate, 1, 8), SUBSTR(mondate, 9, 2)
 ORDER BY 일자, 시간
;

마농(manon94)님이 2016-01-05 15:27에 작성한 댓글입니다.

오.. 감사합니다.

쉽게 되는군요..

박경오님이 2016-01-05 15:43에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
41047pl/sql에 관해 여쭙니다.
seung
2016-01-07
8058
41046쿼리문안에 INTO이건 어떨때 쓰나요? [2]
seung
2016-01-07
8276
41045테이블, 뷰의 속성 조회 [3]
정재봉
2016-01-06
8504
41044시간별 합산하려고 하는데요. [4]
mayse
2016-01-05
8256
41043PL/SQL Exception 관련. [6]
JHetfield
2016-01-04
9232
41041데이터를 1년 전체 표로 표현하기 [1]
김형우
2015-12-28
8600
41039쉼표로 옆으로 표현된 데이타를 세로로 표현하기 [1]
정재영
2015-12-24
8633
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.052초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다