我有一个有趣的问题,我需要以特定的方式对AVG()函数的结果进行舍入,以便在ORDER BY子句中使用。
这些用于配方评级。
舍入公式的示例:
1.2 -> 1
1.4 -> 1
1.5 -> 1.5
1.6 -> 2
1.9 - >2
我正在查询食谱清单,他们需要订购,以便订购一个五星评级的食谱不会在100个评级平均为4.9的食谱上方订购。 order by子句的第二部分是评级计数。
如果这需要用户定义的功能,我不太清楚如何去做。
答案 0 :(得分:6)
ORDER BY
CASE WHEN (Num % 1) = .5
THEN Num
ELSE ROUND(Num,0)
END
答案 1 :(得分:2)
如果我理解正确,你有星星和半星?
我建议ORDER BY ROUND(value*2, 0)/2
,这样就可以转到最接近0.5
(半星)的步骤。