问答 查看内容
返回列表

函数计算结果出错了

20 1
发表于 昨天 11:29 | 查看全部 阅读模式


场景
10个客户类型,以“民企”为基准价格指数,通过价格对比,计算其他客户类型的价格指数怎么样
但是实际计算结果为空值,是哪里出错了
截图202608241124101885.png 截图202608241124522478.png 截图202608241124264668.png

评论1

观小凡Lv.9 发表于 昨天 15:26 | 查看全部
原因:当前公式把 CASE WHEN [客户类别]='民企' 放在窗口聚合外层,导致非“民企”分组的 [基准指数] 为 0,后续除以 AVG([基准指数]) 时出现除零并返回空值。

建议:如果所有[客户类别]要使用同一个 [基准指数] ,需要将条件移入聚合函数, [基准指数] 建议改为:
  1. SUM(CASE WHEN [客户类别] = '民企' THEN [发货金额含税] ELSE 0 END) OVER (PARTITION BY 1)
  2. /
  3. SUM(CASE WHEN [客户类别] = '民企' THEN [发货数量] ELSE 0 END) OVER (PARTITION BY 1)
复制代码


如果[基准指数] 有可能为0,则[价格指数] 建议改为:
  1. CASE
  2.   WHEN AVG([基准指数]) IS NULL OR AVG([基准指数]) = 0 THEN NULL
  3.   ELSE (SUM([发货金额含税]) / SUM([发货数量])) / AVG([基准指数])
  4. END
复制代码

回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

微信服务号
联系我们
电话:400-880-0750
邮箱:hello@guandata.com
Copyright © 2001-2026 观远社区 版权所有 All Rights Reserved. 浙 ICP 备15006424号-3
去回复 去发帖 返回顶部
快速回复 返回顶部 返回列表