ユーザーの統計を表示するページがありますが、テーブルから週次、月次、年次、およびすべての時間の統計を取得するための最良の方法は1つのクエリで何ですか?
現在、各日付範囲内の結果を確認するために個別のクエリを使用していますが、より良い方法が必要です。例として、過去1か月、1週間、1年のすべての行を「投票」=「1」でカウントしたいと思います。
SELECT
user_id,
SUM(IF(ts>CURRENT_DATE - INTERVAL 1 WEEK,votes,0)) votes_weekly,
SUM(IF(ts>CURRENT_DATE - INTERVAL 1 MONTH,votes,0)) votes_monthly,
SUM(IF(ts>CURRENT_DATE - INTERVAL 1 YEAR,votes,0)) votes_yearly
FROM table
WHERE ts>CURRENT_DATE - INTERVAL 1 YEAR
GROUP BY user_id;