我有两个简单的select语句,只想将第一个语句除以第二个语句。
SELECT COUNT (DISTINCT INITIATIVE_ID)
FROM GPD_ERROR_WARNING_NEW
SELECT COUNT (DISTINCT SAVINGS_ID)
FROM GPD_SAVINGS_REGULAR
第一个选择语句结果为300 第二个选择语句导致大约1500,所以只是寻找那个魔法.2
我知道手动操作很简单,但希望自动化并使其成为一个视图,因为它需要每小时更新一次。
答案 0 :(得分:6)
这会有效,但它会让您对“除以零”错误持开放态度:
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;
答案 1 :(得分:0)
您可以这样编写查询(在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;