我的 MySQL 表有以下列:datetime、price_paid。 我正在尝试计算 2 个日期之间一周中每天的平均销售额。 这意味着我需要选择日期开始日期和结束日期之间的销售额总和,按工作日分组,然后除以每个工作日在该范围内出现的次数。
我得到了第一部分:
SELECT DATE_FORMAT(datetime, '%a') AS field1,
round(SUM(price_paid)/ THEVALUEIMLOOKINGFOR ) AS field2
FROM Bills
WHERE date(datetime) BETWEEN '2012-01-02' AND '2012-01-09'
GROUP BY weekday(datetime)
我没有的是缺失值:我应该除以的数字 - 每天出现在该范围内的次数。我尝试了几种解决方案,但无济于事。
有人可以帮我完成我的 SQL 语句吗?
感谢您的宝贵时间!
最佳答案
也许我过于简单化了,但考虑到您已经按工作日分组,难道不只是计算 (*) 计算每个工作日在该范围内给定工作日的数量吗?
所以:
SELECT DATE_FORMAT(datetime, '%a') AS field1,
round(SUM(price_paid)/ COUNT(DISTINCT(date(datetime))) ) AS field2
FROM Bills
WHERE date(datetime) BETWEEN '2012-01-02' AND '2012-01-09'
GROUP BY weekday(datetime)
经过编辑,因此不会在同一天多次重复计数(感谢 DRapp)
关于mysql - 计算每日平均值(或 : how many Mondays are in a date range? ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9491989/