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

[数据处理] 在计算列中使用case when函数式

yhdata_IvpxFXx9玄铁一 显示全部楼层 发表于 2024-1-2 13:27:25 |阅读模式 打印 上一主题 下一主题
1
未解决
在计算列中使用case when函数式 时,如果有多个值需要进行判断时如何进行写 case type and id then 'A' and 1 then 1 else 0 end 这样吗
回复

使用道具 举报

精彩评论3

yhdata_lyaa 显示全部楼层 发表于 2024-1-2 13:43:54
根据数据来源不同,计算类型分为SQL语句、Mongo管道语句、基础函数,case when要自己写sql语句。
https://www.yonghongtech.com/rea ... aculategrammar.html
计算列多个条件参考语法
if <expr> then <then> [elseif <expr2> then <then2>...] [else <else>] end
测试一系列表达式,同时为第一个为 true 的 <expr> 返回 <then> 值。
例如:
if (col['sales'] > 10000) then "高利润" elseif (col['sales'] < 10000 and col['sales'] > 1500) then "保持成本" else "亏本" end
回复

使用道具 举报

哈莉·奎茵青铜三 显示全部楼层 发表于 2024-1-2 21:48:41
这个我试过,好像sql计算列不可以用case when,会有语法错误,如果不是特别多,可以考虑用多层if(,,)代替,实在不行就在建数据集写sql时把这个case when数据列写上(当然这个对用了聚合函数的不适用)。又或者数据量不是很多,可以考虑用js表达式实现。
回复

使用道具 举报

yanieye 显示全部楼层 发表于 2024-1-3 08:44:39
多值判断请使用if  then elseif then else end
类似于
if col['c1'] == 'A' and col['b1'] > 8 then 1 elseif col['c1'] == 'B' and col['b1'] < 0 then 0 else -1 end
回复

使用道具 举报

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

  • 官方微信

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

    扫码关注
  • 新浪微博

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

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

会员等你来哦

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