select avg(purch_amt) from orders;
我取了一定数量的金额,它显示了很多小数位的值,我想把它限制在两位小数。
以下是我的尝试: -
select cast(avg(purch_amt) as decimal(10,2)) from orders;
请回答包含两个操作(第一次平均然后转换)。我想知道将语句写在一起的正确语法。
答案 0 :(得分:1)
您可以将查询更新为:
select ROUND (avg(purch_amt),2) as Average from orders;
答案 1 :(得分:0)
您可以使用ROUND作为
SELECT ROUND(AVG(purch_amt), 2) AS 'Average' from orders
或者如果要在计算平均值之前舍入所有列值
SELECT AVG(ROUND(purch_amt, 2)) AS 'Average' from orders
答案 2 :(得分:0)
我首选的方法是转换为适当的十进制值:
select cast(avg(purch_amt) as decimal(10, 2))
from orders;
这与round()
略有不同,尽管两者通常会产生相同的结果。正如文档中对round()
所解释的那样:
返回值与第一个参数的类型相同(假设 它是整数,双精度或十进制)
这意味着在应用程序中显示的内容可能仍会显示比小数位数更多(或更少)的内容。通过更改类型,应用程序将知道结果中应该有多少小数位。
您可以从this example看到round()
不会更改数据类型 - 因此它可能不会更改工具中的表示形式。