首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Druid转换规范表达式中检查“in”子句

如何在Druid转换规范表达式中检查“in”子句
EN

Stack Overflow用户
提问于 2021-01-19 15:22:29
回答 1查看 83关注 0票数 0

我正在查找检查Druid转换表达式中的“in”子句。

我想检查并派生一个满足以下条件的字段:

代码语言:javascript
复制
severity_analysis_period IN ('Critical') 
  THEN '>4hr Deviation' ,
when severity_analysis_period IN ('High', 'Medium', 'Low') 
  THEN '<4hr Deviation' else 'No Deviation'.

我像这样编写了转换规范,但它不起作用:

代码语言:javascript
复制
    "transformSpec": {
      "transforms": [
        {
          "type": "expression",
          "name": "deviation",
          "expression": "if(\"severity_analysis_period\"='Critical'),'>4hr Deviation',if(\"severity_analysis_period\" in ('High','Medium','Low'),'<4hr Deviation','No Deviation'))"
        },
        {
          "type": "expression",
          "name": "deviation_day",
          "expression": "if((\"severity_day\"='Critical'),'>4hr Deviation',if(\"severity_day in\" ('High','Medium','Low'),'<4hr Deviation','No Deviation'))"
        },
        {
          "type": "expression",
          "name": "deviation_hour",
          "expression": "if((\"severity_day_hour\"='Critical'),'>4hr Deviation',if(\"severity_day_hour\" in ('High','Medium','Low'),'<4hr Deviation','No Deviation'))"
        }
      ],
    }
EN

回答 1

Stack Overflow用户

发布于 2021-01-21 21:52:04

您可以尝试使用case语句:

代码语言:javascript
复制
{
      "type": "expression",
      "name": "deviation_hour",
      "expression": 'case_simple("severity_analysis_period", "Critical", ">4hr Deviation", "High", "<4hr Deviation", "Medium", "<4hr Deviation", "Low", "<4hr Deviation", "No Deviation")'
}

case_simple函数的工作方式如下:

代码语言:javascript
复制
case_simple(expr, value1, result1, [[value2, result2, ...], else-result])

另请参阅:https://druid.apache.org/docs/latest/misc/math-expr.html

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65787011

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档