划分两个简单的select语句



我有两个简单的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;

最新更新