select avg(purch_amt) from orders;
我取了一个平均值,它显示的数值一直到小数点后很多位,我想把它限制在小数点后两位。这是我的tried:- select cast(avg(purch_amt) as decimal(10,2)) from orders; 请回答包含两个操作(先平均,然后转换)。我想知道把这两个语句写在一起的正确语法。
select cast(avg(purch_amt) as decimal(10,2)) from orders;
kh212irz1#
我首选的方法是转换为适当的十进制值:
select cast(avg(purch_amt) as decimal(10, 2)) from orders;
这和 round() ,尽管两者通常产生相同的结果。正如文档所解释的 round() :返回值的类型与第一个参数相同(假设它是整数、双精度或十进制)这意味着在应用程序中显示的内容可能仍然比小数位数多(或少)。通过更改类型,应用程序将知道结果中应该有多少个小数位。从这个例子可以看出 round() 不会更改数据类型—因此可能不会更改工具中的表示形式。
round()
tkclm6bt2#
你可以用圆形作为
SELECT ROUND(AVG(purch_amt), 2) AS 'Average' from orders
或者如果要在计算平均值之前对所有列值进行四舍五入
SELECT AVG(ROUND(purch_amt, 2)) AS 'Average' from orders
3j86kqsm3#
您可以将查询更新为:
select ROUND (avg(purch_amt),2) as Average from orders;
3条答案
按热度按时间kh212irz1#
我首选的方法是转换为适当的十进制值:
这和
round()
,尽管两者通常产生相同的结果。正如文档所解释的round()
:返回值的类型与第一个参数相同(假设它是整数、双精度或十进制)
这意味着在应用程序中显示的内容可能仍然比小数位数多(或少)。通过更改类型,应用程序将知道结果中应该有多少个小数位。
从这个例子可以看出
round()
不会更改数据类型—因此可能不会更改工具中的表示形式。tkclm6bt2#
你可以用圆形作为
或者如果要在计算平均值之前对所有列值进行四舍五入
3j86kqsm3#
您可以将查询更新为: