【问题标题】:ratio calculated in Cloudera在 Cloudera 中计算的比率
【发布时间】:2018-05-01 20:19:16
【问题描述】:

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

sum(COALESCE(call_received, 0)) AS call_received

我认为上面的 sn-p 应该处理 NULL,我应该将它除以什么以确保我考虑到所有内容?

【问题讨论】:

  • 也许只是我没有得到这个。但是你能澄清一下“得到所有人的比例”是什么意思吗?我想,关于“0、1、Null”值,您要寻找什么样的比率?某种值和比率的计数?

标签: sql cloudera


【解决方案1】:

你可以使用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 的总数,所以那里没有什么特别要求。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-04-19
    • 1970-01-01
    • 2011-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多