在 Cloudera 中计算的比率

ratio calculated in Cloudera

如何从具有 0、1、NULL 之一的变量中获取比率,以确保 NULL 被计为 0,并且我得到所有

的比率
sum(COALESCE(call_received, 0)) AS call_received

我认为上面的代码片段应该处理 NULL,我应该将它除以什么以确保我考虑到了所有内容?

您可以使用 COUNT(*):

SELECT SUM(COALESCE(call_received,0)) AS call_received,
       COUNT(*) AS call_total,
       SUM(COALESCE(call_received,0)) / COUNT(*) AS call_received_ratio
FROM yourTable

COUNT(*) 在总数中包括 NULLs,所以没有什么特别的要求。