1 背景
在日常产品使用的过程中,很多用户提出各种各样的场景,整理之后统一放在这里供大家参考,后续会不断补充完善。
信息 | ||
---|---|---|
| ||
1、在1、计算列相关信息,可以查看:计算列。 2、在数据模型引擎V2.0上新增了50+函数,详情查看:计算列函数。 2、计算列数据库适配情况,查看:3、计算列数据库适配情况,查看:计算列函数数据库适配情况。 |
1.1 函数最佳实践五步法
2 示例说明
以下示例没有特别说明,均可以基于产品自带的”订单模型“创建出来。
2.1 日期是字符串格式转成日期格式
场景描述:底层表是字符串类型,数据是20241001的格式,希望转换成2024-10-01。
1、创建计算列,使用 STRTODATE 函数进行转换:
2、创建好之后预览数据,结果如下:
2.2 拼接字符串
场景描述:把订单模型订单表中的“区域”、“省份”、“城市”、“地址”拼接成一个收获地址?
1、创建计算列,使用 CONCAT函数进行拼接,可以使用无数个字段或者常量:
2、预览得到结果如下:
2.3 取整
场景描述: 有时候需要把字段取整再进行二次加工数据,比如下图
...
1、创建计算计算列,通过 TOINTEGER 函数快速实现,如果最后一位数字大于等于5,会四舍五入,如果小于则直接舍弃。
2、预览得到结果:
2.4 数值字符串变成数值型
场景描述:在数据源表下有一些字段是数值的字符串类型,想要基于它进行加减乘除, 所以需要把原始的字段转成数值字段。
1、创建计算列,使用 TODOUBLE 函数:
2、转换之后,可以用于做二次计算:
2.5 使用case when 对值进行判断
场景描述:需要根据字段的值进行输出不同的标签或者内容。
1、创建计算列,使用 CASE WHEN 逻辑函数:
2、创建成功之后,预览数据:
2.6 基于字段进行分组
场景描述:原始指标有A和B,现在要对A/B这个计算字段按范围分组,这个如何实现?
...
方法1:先创建把A/B创建一个新的计算列,再用该字段分组。
方法2:创建计算列,使用 IIF 函数
2.7 去空判断
场景描述:计算两数值字段相加,如果字段为空则显示0
创建计算列,使用 IFNULL 函数,当值为null时转成0;如果为空时也可以转成0:
2.9 求某个日期前X天/年/月/季
场景描述:有一个“订单日期”字段,把它作为筛选器,当前值是2024年7月11,现在要取这个日期的前30天?
...
信息 |
---|
DATEADD(date, num, unit) 通过输入不同的参数值,实现多年/季/月/日 的偏移。 注意:偏移类型不支持年周。 |
预览结果:
2.10 返回日期之间的天数差
场景描述:返回日期之间的天数差,比如计算下单到发货用了多久。
...
信息 |
---|
DATEDIF(startdate, enddate, unit) 通过输入不同的参数值,实现多年/季/月/日 的偏移。 注意:偏移类型不支持年周。 |
2、预览数据:
2.11 时间戳转成日期
场景描述:数据源里有个时间戳字段, 客户目前通过改变数据字段类型为日期是不生效的;咨询一怎么能实现时间戳转换为标准的日期格式呢?
1、创建计算列,使用UNIXTIMETODATE函数:
2、预览结果:
2.12 获取当年第一天
场景描述:获取当年的第一天
1、创建计算列,通过 YEAR 函数获取当前年,再用 CONCAT 进行拼接
...