[英]T-SQL Rounding to 0.0, 0.5, or 1.0
我有一个有趣的问题,我需要以特定方式对 AVG() function 的结果进行舍入,以便在 ORDER BY 子句中使用。
这些用于配方评级。
舍入公式的示例:
1.2 -> 1
1.4 -> 1
1.5 -> 1.5
1.6 -> 2
1.9 - >2
我正在查询一个食谱列表,并且需要订购它们,这样一个 5 星评级的食谱就不会高于一个平均 4.9 的 100 个评级的食谱。 order by 子句的第二部分是评分计数。
如果这需要用户定义的 function,我不太清楚 go 如何去做。
ORDER BY
CASE WHEN (Num % 1) = .5
THEN Num
ELSE ROUND(Num,0)
END
如果我理解正确的话,你有星星和半星吗? 我建议ORDER BY ROUND(value*2, 0)/2
,这样它会四舍五入到最接近的0.5
(半星)步长。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.