JAVA有percentile函数吗_计算DAX中的PERCENTILE

我找到了一种方法,可以通过一系列步骤打破计算,从而获得了一个非常快速的解决方案 .

为了计算表 Data 中 Amount Paid 的第10个百分位数,我遵循了下面的书外公式:

Calculate the Ordinal rank for the 10th percentile element

10ptOrdinalRank:=0.10*(COUNTX('Data', [Amount Paid]) - 1) + 1

它可能会出现一个十进制(分数)数字,如112.45

Compute the decimal part

10ptDecPart:=[10ptOrdinalRank] - TRUNC([10ptOrdinalRank])

Compute the ordinal rank of the element just below(floor)

10ptFloorElementRank:=FLOOR([10ptOrdinalRank],1)

Compute the ordinal rank of the element just above(ceiling)

10ptCeilingElementRank:=CEILING([10ptOrdinalRank], 1)

Compute element corresponding to floor

10ptFloorElement:=MAXX(TOPN([10ptFloorElementRank], 'Data',[Amount Paid],1), [Amount Paid])

Compute element corresponding to ceiling

10ptCeilingElement:=MAXX(TOPN([10ptCeilingElementRank], 'Data',[Amount Paid],1), [Amount Paid])

Compute the percentile value

10thPercValue:=[10ptFloorElement] + [10ptDecPart]*([10ptCeilingElement]-[10ptFloorElement])

我发现性能明显快于我在网上找到的其他解决方案 . 希望它能帮助将来的某个人 .

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值