也许我太简单了,但是鉴于您已经按工作日分组,难道不只是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)