根据工作日或不工作表查询最近两天

时间:2016-12-13 13:26:48

标签: mysql sql average

我们使用Mysql,我们试图从这样的小时数据集中获取最近两个工作日的平均值。

  
Date                Price
2016-12-13 00:00    187,68  
2016-12-13 01:00    201
2016-12-13 02:00    211,66  
2016-12-13 03:00    215,84

所以我们创建了一个名为(Workdays)的表,显示这一天是工作日还是假日:

 
Date        Workday
2016-12-13    1
2016-12-14    1
2016-12-15    0 
2016-12-16    0

1表示工作日,0表示周末或国定假日

在和,我们要查询过去两个工作日的平均价格,单独考虑工作日表

这可能吗?

非常感谢。

2 个答案:

答案 0 :(得分:1)

如果我理解正确,表endQuiz每个日期确实只有一行。如果是这样,您可以在子查询中获取最近的两个工作日,然后使用workdays选择第一个表中的行:

join

答案 1 :(得分:0)

试试这个

select W.Date, AVG(Price)
from Prices p
join Workdays W on 
    w.Date = DATE(P.Date) 
    AND Workday=1 
    and W.Date <= curdate()
group by W.Date
order by W.Date desc;