【发布时间】:2019-01-09 12:22:15
【问题描述】:
我有以下疑问:
SELECT (COUNT(DISTINCT CASE WHEN houses.level = 'top' THEN users.id END)::float / NULLIF(COUNT(DISTINCT users.id)::float, 0))
FROM users
LEFT JOIN houses ON houses.user_id = users.id
而不是比率,我想返回一个百分比,所以我将其更改为:
SELECT (COUNT(DISTINCT CASE WHEN houses.level = 'top' THEN users.id END)::float / NULLIF(COUNT(DISTINCT users.id)::float, 0)) * 100
FROM users
LEFT JOIN houses ON houses.user_id = users.id
但是,如果分母 (NULLIF(COUNT(DISTINCT users.id)::float, 0)) 返回 null,则意味着我将乘以 NULL * 100。如果分母为 0(因此由于 NULLIF 而为 null),我怎样才能不乘以返回 NULL .
【问题讨论】:
-
NULL被乘以 100 为什么你会担心?
标签: sql postgresql nullif