私は、特定の日の放送時間あたりに再生された音楽トラックの平均数を見つけるためにクエリを作成しようとしています。1時間あたりのアイテム数をカウントして、結果の平均を探します。
私は、日時の値(作成されたフィールド)に基づいてトラックが再生されたときに記録するテーブルを持っています。
したがって、1時間に記録されるエントリまたはトラックの数をカウントする必要があります。
次に、1時間ごとの合計で平均を求めます。
これまでのところ、私はこれを持っていましたが、それが正しいかどうか疑問に思っていましたか?私は認めざるを得
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
は、私は別のポストからのstackoverflowの上で、どのような
と
R平均/参照を理解していないことを策定しました。
私はこの権利があるかどうかを知りたいので、四半期(3ヶ月)の結果をカバーするようにクエリを拡張できます。
非常によく見えます。 DATE(作成済み)は索引を使用できないことに注意してください。 Aとrはエイリアスです。 Rは厳密には必要ではないが、aである。 – Strawberry
ああ。したがって、作成されたテーブルのインデックスにすることはできません。そうですか?以前は何の問題もありませんでした。 – mattauckland
が作成されます。 DATE()はそのインデックスを利用できません。可能であれば(場合によってはそうでない場合もあります)、インデックスを利用できるようにクエリを書く方が良いです(例: : 'BETWEEN 'を作成した場所2016-04-02 00:00:00' AND '2016-04-02 23:59:59';' – Strawberry