我正在尝试使用SELECT属性列表中的子查询创建一个SQL语句,以显示产品ID,当前价格以及当前价格与总体平均值之间的差异。
我知道使用ROUND函数会将差值四舍五入到零小数,但我想将差值四舍五入到小数点后两位。
End
我尝试过使用CAST,但它仍然给了我相同的输出。
SELECT p_code, p_price, ROUND(p_price - (SELECT AVG(p_price) FROM product)) AS "Difference"
FROM product;
提前感谢您的时间和帮助!
答案 0 :(得分:2)
round()
采用第二个论点:
SELECT p_code, p_price,
ROUND(p_price - AVG(p_price) OVER (), 2) AS "Difference"
FROM product;
请注意,我还将子查询更改为窗口函数。
我经常建议转换为number
或decimal
/ numeric
):
SELECT p_code, p_price,
cast(p_price - AVG(p_price) OVER () as number(10, 2)) AS "Difference"
FROM product;
这样可以确保显示两个小数点。