从SQL表中计算每日平均销售额

3
我想计算我的SQL表中每日销售额的平均值。 我尝试使用以下查询,但它会出现错误,提示“在select关键字附近语法不正确”。
select avg(select sum(total) from canteen group by date) as average from canteen

你是在数据库管理系统中还是在Java代码中运行了这个查询?如果是在代码中,你应该把它放在你的问题里。 - Youcef LAIDANI
4个回答

7
不要嵌套聚合函数。这是您想要获得每个日期总和的方式:
select day, sum(total)
from canteen
group by day;

您可以使用子查询来获取平均值:
select avg(total)
from (select day, sum(total) as total
      from canteen
      group by day
     ) c;

或者,一个更简单的选择:
select sum(total) / count(distinct day)
from canteen;

非常感谢您的帮助。 - Mohit Joshi

0

正确的语法是

SELECT date, avg(total) average FROM (
SELECT date, sum(total)total FROM canteen GROUP BY DATE
)AS A
grouP BY date

现在检查一下@MohitJoshi,我错过了Group By。 - Shakeer Mirza

0

如果可以的话,我希望你不要担心嵌套查询;

select avg(total) from(select sum(total) as total from canteen group by date) as T

有任何错误或错误的结果吗?更新了查询,你能试试这个吗? - KOUSIK MANDAL
很高兴听到这个。 - KOUSIK MANDAL
请问您的查询中别名“T”的意义是什么?如果没有它会出现错误。 - Mohit Joshi
在mysql中,必须为子查询表添加别名。 - KOUSIK MANDAL

0

最好尝试使用像这样的子查询:

select avg(total) from(select sum(total) from canteen group by date)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接