我有一个数据库关系 fake_apps 与假应用程序的价格。现在我正在尝试计算所有价格的平均值的四舍五入值,最多精确到小数点后两位。
我不明白为什么这个查询不起作用。
SELECT ROUND(SELECT AVG(prices) FROM fake_apps,2) AS round_val;
它在 MySQL 8.0.18 上给出如下语法错误:
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use.
最佳答案
您需要两组括号,一组代表 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 ;
关于mysql - 为什么按以下方式使用 AVG() 和 ROUND() 函数不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58570529/