页面树结构

版本比较

标识

  • 该行被添加。
  • 该行被删除。
  • 格式已经改变。

1

...

背景

在日常产品使用的过程中,很多用户提出各种各样的场景,整理之后统一放在这里供大家参考,后续会不断补充完善。

信息
title前提条件

1、计算列相关信息,可以查看:计算列

2、在数据模型引擎V2.0上新增了50+函数,详情查看:计算列函数

3、计算列数据库适配情况,查看:计算列函数数据库适配情况

1.1 函数最佳实践五步法

Image Added


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 逻辑函数:

Image Added

2、创建成功之后,预览数据:

Image Added


2.6 基于字段进行分组

场景描述:原始指标有A和B,现在要对A/B这个计算字段按范围分组,这个如何实现?

有2种方法实现:

方法1:先创建把A/B创建一个新的计算列,再用该字段分组。

Image Added

方法2:创建计算列,使用 IIF 函数

Image Added


2.7 去空判断

场景描述:计算两数值字段相加,如果字段为空则显示0

创建计算列,使用 IFNULL 函数,当值为null时转成0;如果为空时也可以转成0:

Image Added

2.9 求某个日期前X天/年/月/季

场景描述:有一个“订单日期”字段,把它作为筛选器,当前值是2024年7月11,现在要取这个日期的前30天?

1、创建计算列,通过DATEADD 函数实现:

信息

DATEADD(date, num, unit)
在日期中添加或减去指定的时间间隔
参数说明:
date: 表示输入的日期、日期时间
num:可以输入正整数,也可以输入负整数;正数则是根据偏移类型,进行相加;负数则是根据偏移类型进行减法。
unit:偏移类型;若unit='Y',则代表偏移年;若unit='Q',则代表偏移季;若unit='M',则代表偏移月;若unit='D',则代表偏移日。

通过输入不同的参数值,实现多年/季/月/日 的偏移。

注意:偏移类型不支持年周。


Image Added

预览结果:

Image Added


2.10 返回日期之间的天数差

场景描述:返回日期之间的天数差,比如计算下单到发货用了多久。

1、创建计算列,使用 DATEDIFF 函数实现:

信息

DATEDIF(startdate, enddate, unit)
返回两个指定日期间的天数、月数或年数。
参数说明:
startdate:代表所指定时间段的初始日期 ,支持日期、日期时间
enddate:代表所指定时间段的终止日期,支持日期、日期时间
unit:函数返回信息的类型;若unit='Y',则返回年差数;若unit='Q',则返回季差数;若unit='M',则返回月差数;若unit='D',则返回日差数。

通过输入不同的参数值,实现多年/季/月/日 的偏移。

注意:偏移类型不支持年周。


Image Added

2、预览数据:

Image Added

2.11 时间戳转成日期

场景描述:数据源里有个时间戳字段, 客户目前通过改变数据字段类型为日期是不生效的;咨询一怎么能实现时间戳转换为标准的日期格式呢?

1、创建计算列,使用UNIXTIMETODATE函数:

Image Added

2、预览结果:

Image Added

2.12 获取当年第一天

场景描述:获取当年的第一天

1、创建计算列,通过 YEAR 函数获取当前年,再用 CONCAT 进行拼接

Image Added

2、预览结果:

Image Added