我有两个简单的select语句,只想用第一个除以第二个。
SELECT COUNT (DISTINCT INITIATIVE_ID)
FROM GPD_ERROR_WARNING_NEW
SELECT COUNT (DISTINCT SAVINGS_ID)
FROM GPD_SAVINGS_REGULAR
第一个select语句产生300第二个select语句的结果是大约1500,所以只需要寻找魔法。2
我知道手工操作很简单,但希望将其自动化并使其成为一个视图,因为它需要每小时更新一次。
这会起作用,但它会让您面临"被零除"的错误:
SELECT
(SELECT COUNT (DISTINCT INITIATIVE_ID) FROM GPD_ERROR_WARNING_NEW) /
(SELECT COUNT (DISTINCT SAVINGS_ID) FROM GPD_SAVINGS_REGULAR)
FROM DUAL;
如果第二个(分母)计数为零,这将给你一个零结果,而不是错误:
SELECT
(SELECT COUNT (DISTINCT INITIATIVE_ID) FROM GPD_ERROR_WARNING_NEW) /
NULLIF((SELECT COUNT (DISTINCT SAVINGS_ID) FROM GPD_SAVINGS_REGULAR), 0)
FROM DUAL;
您可以这样写查询(在sql中):
SELECT
(SELECT DISTINCT COUNT(INITIATIVE_ID) FROM GPD_ERROR_WARNING_NEW) /
ISNULL((SELECT DISTINCT COUNT(SAVINGS_ID) FROM GPD_SAVINGS_REGULAR), 0)
FROM DUAL;