文章 查看内容

Spark数值函数使用案例

Spark数值函数使用案例

54 0 函数专题 2024-7-15 16:01 发布者: 观小凡

案例1:850元向上取整到最近的100元; 案例2:页面上筛选 202307 时,展示当年1月到当前选择月份(202301-202307)的数据。
 

案例一:

场景:

      在制定预算时,可能需要将某些费用向上取整到最近的10元或100元。假设一个项目的预算是850元,需要向上取整到最近的100元,Excel里的计算方式为 CEILING(850, 100) = 900元。但是使用观远BI要怎么实现呢?

解决方案:

      Excel里函数 CEILING(number, significance) 可以实现将数值 number 向上舍入(沿绝对值增大的方向)为最接近的指定基数 significance 的倍数。

      BI使用的Spark SQL里也有CEILING 函数,但是用法不同,Spark 里 ceiling(expr[,d]) 在填入2个参数时,代表按照指定小数位数向上舍入,返回最近的整数或者小数。例如 ceiling(3.1411, 3) =3.142。

BI 实现方法:(非直连数据集)

写法1:ceil(850/100)*100
写法2:ceiling(850/100)*100

案例二:

场景:

      数据集里有一个数值类型的年月字段,想要实现页面上筛选 202307 时,卡片筛选范围为202301-202307,即展示当年1月到当前选择月份的数据。期望效果如下图。

解决方案:

  1. 准备一个数值类型的全局参数,在卡片里新建一个布尔类型的计算字段,引用参数,把该字段拖入筛选栏;
写法1:
[年月] between floor([DYNAMIC_PARAMS.参数1]/100)*100+1 and [DYNAMIC_PARAMS.参数1]
写法2:
[年月] <= [DYNAMIC_PARAMS.参数1] and [年月] >= floor([DYNAMIC_PARAMS.参数1]/100)*100+1
  1. 新建选择筛选器,使用字段 [年月],联动卡片里的全局参数即可。


路过

雷人

握手

鲜花

鸡蛋

评论

您需要登录后才可以发表言论 登录立即注册
微信服务号
联系我们
电话:400-880-0750
邮箱:hello@guandata.com
Copyright © 2001-2024 观远社区 版权所有 All Rights Reserved. 浙 ICP 备15006424号-3
去评论 去发文 返回顶部
返回顶部