mysql - 计算每日平均值(或 : how many Mondays are in a date range? )

标签 mysql sql datetime

我的 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/

相关文章:

sql - 是否有库/工具可以在没有服务器的情况下查询 MySQL 数据文件(MyISAM/InnoDB)? (SQLite 方式)

mysql - Grafana 变量 MySQL

需要Mysql存储函数帮助

php - 使MySQL自增id(re)从1开始

python - 从 pandas 时间戳中提取日期和时间

mysql - 如何使用 IF THEN ELSE 来 SELECT 和 INSERT 或 UPDATE 查询?

sql - 有什么比 P6Spy 更好的吗?

Mysql replace() 函数,帮助查询(我要转义哪些字符?)

SQL 日期时间天数差异

datetime - `Dates.value` 函数在 Julia 中如何工作?