如何在SQL中只显示两位小数的avg函数值?

时间:2018-05-19 04:04:15

标签: mysql sql

select avg(purch_amt) from orders;

我取了一定数量的金额,它显示了很多小数位的值,我想把它限制在两位小数。 以下是我的尝试: -     select cast(avg(purch_amt) as decimal(10,2)) from orders; 请回答包含两个操作(第一次平均然后转换)。我想知道将语句写在一起的正确语法。

3 个答案:

答案 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()不会更改数据类型 - 因此它可能不会更改工具中的表示形式。