2014-09-26 3 views
4

두 개의 간단한 select 문이 있는데 첫 번째 문과 두 번째 간단한 문을 나누기를 원합니다. 1500 300 개 두 번째 SELECT 문 결과에두 개의 간단한 select 문 나누기

SELECT COUNT (DISTINCT INITIATIVE_ID) 
FROM GPD_ERROR_WARNING_NEW 

SELECT COUNT (DISTINCT SAVINGS_ID) 
FROM GPD_SAVINGS_REGULAR 

첫 번째 SELECT 문 결과, 그래서 그냥 나는 그것을 손으로 할 간단 알고 마법 0.2

을 찾고 있지만이 자동화보고 매시간 업데이트해야하므로보기로 만듭니다.

답변

6

이 작동하지만 오류 "0으로 나누기"A를 열고 잎 : 두 번째 (분모) 카운트로 표시되면

SELECT 
    (SELECT COUNT (DISTINCT INITIATIVE_ID) FROM GPD_ERROR_WARNING_NEW)/
    (SELECT COUNT (DISTINCT SAVINGS_ID) FROM GPD_SAVINGS_REGULAR) 
FROM DUAL; 

이 당신에게 대신 오류의 널 (null) 결과를 줄 것이다 0 :

SELECT 
    (SELECT COUNT (DISTINCT INITIATIVE_ID) FROM GPD_ERROR_WARNING_NEW)/
    NULLIF((SELECT COUNT (DISTINCT SAVINGS_ID) FROM GPD_SAVINGS_REGULAR), 0) 
FROM DUAL; 
+2

정수 나누기 때문에 OP의 예에서 '0'을 반환하겠습니까? – jlars62

+0

@Dillon Tagle - 또한 DUAL 테이블은 오라클 전용 구조입니다. 다른 데이터베이스 (예 : SQL Server)의 경우 FROM 문을 설정할 필요가 없습니다. – DanK

+1

@ jlars62 - 아니요. 나는 똑같은 것을 궁금해서 다른 테이블을 사용해 보았고 "십진수"값을 얻었다. 나는 오라클 11에 있습니다. –