如何在星火sql中求值拆分为数十亿、百万、数千、单位和小数
目前,我尝试了以下选项
千-ABS(数量)%1000000输出: 562191.7974663
单位-ABS(数量)%1000输出: 191.7974663
小数-ABS(数量)%1输出: 0.7974663或-0.56724
然而,我正在寻找一个输出如下表所示。
Amount Amt_Billions Amt_Millions Amt_Thousands Amt_Units Amt_Decimals
3946562191.7974663 3000000000 946000000 562000 191 7974663
-743245613.56724 743000000 245000 613 56724有人能帮我计算一下吗?
提前谢谢。
发布于 2021-03-15 20:27:43
你可以得到这样的数量级。
floor(abs(Amount)%1000000000000/1000000000)*1000000000 Billions,
floor(abs(Amount)%1000000000/1000000)*1000000 Millions,
floor(abs(Amount)%1000000/1000)*1000 Thousands,
floor(abs(Amount)%1000) Units转换小数部分我想你将不得不求助于一个字符串表达式(转换为string,查找“的索引”)。然后右转(string,len(string)-index),最后强制转换为int,当然,除非它只是为了显示目的。
发布于 2021-03-15 20:18:27
嗯嗯。。。
floor(amount / 1000000000) * 1000000000 as billions,
floor((amount % 1000000000) / 1000000) * 1000000 as millions,
floor((amount % 1000000) / 1000) * 1000) as thousands,
floor(amount % 1000) as units小数是唯一棘手的。这些数字没有意义,因为0.1,0.01,0.001都将决定为1。我建议在一些单位这样做,例如数百万人:
floor((amount % 1) * 1000000) as unitshttps://stackoverflow.com/questions/66644639
复制相似问题