我的MySQL表包含以下列:datetime,price_paid。我正在尝试计算一周中每天两次(两次约会之间)的平均销售额。这意味着我需要在startDate和endDate日期之间选择销售总和,并按工作日分组,然后将其除以该范围内每个工作日发生的次数。
我得到了第一部分:
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语句吗?
谢谢你的时间!
也许我太简单了,但是鉴于您已经按工作日分组,难道不只是count(*)为每个工作日计算该范围内给定工作日的数量?
所以:
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)