在 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(*)
在总数中包括 NULL
s,所以没有什么特别的要求。
如何从具有 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(*)
在总数中包括 NULL
s,所以没有什么特别的要求。