我正在尝试构建一个查询来查找给定日期内每个广播小时播放的音乐曲目的平均数量。计算每小时的项目数,然后查找结果的平均值
我有一个表根据日期时间值(创建的字段)记录播放曲目的时间。
所以我需要统计每小时记录多少条目或轨道。
然后用小时总计找到平均值。
到目前为止,我有这个,但想知道它是否正确?
SELECT AVG(a.total) FROM (
SELECT HOUR(created) AS hour, COUNT(id) AS total
FROM `music_log` r
WHERE DATE(created) = DATE(DATE_SUB(NOW() , INTERVAL 1 DAY)) group by HOUR(r.created)
) a
我得承认,我制定了从其他岗位上的计算器,不明白什么一个和[R平均值/参考。
我想知道我是否有这个权利,所以我可以扩展查询以涵盖四分之一(3个月)的结果。
看起来不错。请注意,DATE(已创建)不能使用索引。 A和r是别名。 R并不是绝对必要的,但一个是。 – Strawberry
哦对。所创建的不能是表中的索引。是对的吗?我以前没有遇到任何问题。 – mattauckland
创建可以索引。 DATE()不能利用该索引。如果可能的话(有时它不是),最好编写查询以便可以利用该索引,例如, :'WHERE created BETWEEN'2016-04-02 00:00:00'AND'2016-04-02 23:59:59';' – Strawberry