同じステートメントで、曜日と時間に基づいてデータを抽出しようとしています(これにより、1時間あたりおよび1週間に何回の訪問があったかを確認できます。ステートメントは次のとおりです。
SELECT
count(id) as count,
HOUR(created) as hour_of_day,
WEEKDAY(created) as day_of_week,
DATE_FORMAT(created,'%W') name_of_day
FROM visitors
GROUP BY day_of_week,hour_of_day
ORDER BY day_of_week,hour_of_day ASC
いくつかのサンプルデータ
count hour_of_day day_of_week name_of_day
2 0 0 Monday
1 1 0 Monday
1 4 0 Monday
4 5 0 Monday
1 6 0 Monday
4 7 0 Monday
1 9 0 Monday
1 10 0 Monday
1 12 0 Monday
1 13 0 Monday
2 16 0 Monday
5 18 0 Monday
5 19 0 Monday
問題 ご覧のとおり、データには何時間にもわたってデータが欠落しています。そして、最初の出力から始まる24時間のタイムラインと一致する、毎日[x、x、x、x、x、x、x]の形式のデータを必要とするグラフを作成しているので、欠落しているものは「0」になります。
PHP側ではループを使用して処理できますが、曜日ごと、およびその範囲内で1時間ごとにループするのはかなり面倒で、間違いなくクリーンではありません。
一時的なテーブルなしで可能ですか(クエリ自体に24桁を含めるなど)?