为什么以下面的方式使用AVG()和ROUND()函数不起作用?

时间:2019-10-26 11:55:16

标签: mysql sql

我有一个与假应用价格的数据库关系fake_apps。现在,我试图计算所有价格的平均舍入值,直到小数点后两位。

我不明白为什么这个查询不起作用。

SELECT ROUND(SELECT AVG(prices) FROM fake_apps,2) AS round_val;

它在MySQL 8.0.18上给出语法错误,如下所示:

  

错误1064(42000):您的SQL语法有错误;检查   与您的MySQL服务器版本相对应的手册   使用的语法。

1 个答案:

答案 0 :(得分:2)

您需要两组括号,一组用于ROUND(),另一组用于子查询:

SELECT ROUND( (SELECT AVG(prices) FROM fake_apps), 2) AS round_val;

具体来说,SQL中的子查询需要使用自己的括号。

这是编写查询的两种替代方法。

在子查询中放入ROUND()

SELECT (SELECT ROUND(AVG(prices), 2) FROM fake_apps) AS round_val;

完全不需要子查询:

SELECT ROUND(AVG(prices), 2) AS round_val
FROM fake_apps ;