找文章 / 找答案
精选问答 更多内容

[数据处理] 计算列

yhdata_MB5fOVHS铂金四 显示全部楼层 发表于 2022-4-1 11:58:07 |阅读模式 打印 上一主题 下一主题
1
未解决

【数据处理】 计算列

3036 14
计算列是这么写的
if(col['检测结果'] == 0)
then sum(col['一次通过数'])/sun(col['总数'])
end
报错为“维度计算列和聚合计算列不能混合使用”
需求是这样的,当检测结果为0时,我要算sum(col['一次通过数'])/sun(col['总数']),当检测结果为1时,我需要新建一个计算列算sum(col['一次通过数'])/sun(col['总数']),就是分两种情况下算这个聚合然后得到两个计算列,请问这个要怎么做,谢谢呀
回复

使用道具 举报

精彩评论14

永洪tech-cp青铜三 显示全部楼层 发表于 2022-4-1 13:15:53
您好,因为您的if条件里面是明细数据,下面是聚合计算列,不支持这样写。我看您两个计算表达式是一样的,能给个样例数据看下您要计算出啥样的结果吗?
回复

使用道具 举报

菜鸟四叶在学习铂金三 来自手机 显示全部楼层 发表于 2022-4-1 13:24:42
永洪tech-cp 发表于 2022-4-1 13:15
您好,因为您的if条件里面是明细数据,下面是聚合计算列,不支持这样写。我看您两个计算表达式是一样的,能 ...

您好,客户这边用的内网,不好给数据,就是有一个字段有“0”,“1”两种值,我现在要当这个字段为0时,当为0时统计0这个聚合表达式,当为1时统计1下的这个聚合表达式分为0,1两种情况
回复

使用道具 举报

菜鸟四叶在学习铂金三 来自手机 显示全部楼层 发表于 2022-4-1 13:26:02
永洪tech-cp 发表于 2022-4-1 13:15
您好,因为您的if条件里面是明细数据,下面是聚合计算列,不支持这样写。我看您两个计算表达式是一样的,能 ...

那我可以写成聚合的形式,让它分成等于0和不等于0的情况,来算这个聚合,能得到我想要的效果嘛
回复

使用道具 举报

永洪tech-cp青铜三 显示全部楼层 发表于 2022-4-1 13:28:12
两个表达式是一样的?只是要按照0,1单独统计?
回复

使用道具 举报

菜鸟四叶在学习铂金三 来自手机 显示全部楼层 发表于 2022-4-1 13:37:25
永洪tech-cp 发表于 2022-4-1 13:28
两个表达式是一样的?只是要按照0,1单独统计?

嗯嗯,对,这个明细数据里的0,1代表两种类别
回复

使用道具 举报

菜鸟四叶在学习铂金三 来自手机 显示全部楼层 发表于 2022-4-1 13:39:50
永洪tech-cp 发表于 2022-4-1 13:28
两个表达式是一样的?只是要按照0,1单独统计?

可以用计算列的sql实现嘛,函数好像实现不了,但是计算列的sql跟数据集里的sql不一样,我不会写
回复

使用道具 举报

永洪tech-cp青铜三 显示全部楼层 发表于 2022-4-1 13:42:54
您可以直接写sum(col['一次通过数'])/sum(col['总数']),然后将检测结果列转为维度
回复

使用道具 举报

永洪tech-cp青铜三 显示全部楼层 发表于 2022-4-1 13:44:37
原数据如下:
1.png

按0,1分类计算结果如下
2.png
回复

使用道具 举报

菜鸟四叶在学习铂金三 来自手机 显示全部楼层 发表于 2022-4-1 13:45:26
永洪tech-cp 发表于 2022-4-1 13:42
您可以直接写sum(col['一次通过数'])/sum(col['总数']),然后将检测结果列转为维度 ...

不太理解这是干嘛呀
回复

使用道具 举报

高级模式
您需要登录后才可以回帖 登录 | 免费注册

  • 官方微信

    欢迎关注永洪服务号!收费为0,价值无限

    扫码关注
  • 新浪微博

    让每位用户轻松挖掘数据价值!

    访问新浪微博
  • 智能客服
50W

会员等你来哦

Copyright   ©2012-2024  北京永洪商智科技有限公司  (京ICP备12050607) 京公网安备110110802011451号 |《永洪社区协议》
返回顶部