如何划分两个聚合以获得百分比

goucqfw6  于 2021-07-29  发布在  Java
关注(0)|答案(2)|浏览(288)

我试图计算处理量与目标量的百分比。我已经能够分别计算出工作量和目标量,但是当我试图得到百分比时,我的结果会不断地四舍五入到最接近的整数,我将它们转换为十进制,因为我希望结果是十进制的,而不是百分比。

(CAST(COUNT(job_id) AS DECIMAL)/
(CAST(ROUND(SUM(review_time)/1000,2)/MAX(CAST(target_review_time AS DECIMAL)) AS DECIMAL))) AS Percentage

任何帮助都将不胜感激,谢谢

3npbholx

3npbholx1#

您正面临整数除法。操作的所有操作数都是整数,因此结果也是整数。
可以通过将其中一个操作数转换为十进制来强制十进制上下文:

COUNT(job_id) / SUM(review_time) / MAX(target_review_time) / 1000.0  AS Percentage

那你就可以了 round() 将结果精确到所需的精度:

ROUND(COUNT(job_id) / SUM(review_time) / MAX(target_review_time) / 1000.0, 2)  AS Percentage

注:如果 job_id 是不可为空的 COUNT(job_id) 写得更有效 COUNT(*) .

cyej8jka

cyej8jka2#

这基本上就是你想要的吗?

COUNT(*) * 1.0 / ( (SUM(Review_Time) / 1000.0) / MAX(target_review_time) )

如果是的话,对整个表达式进行强制转换。

相关问题