ユーザーが一連の動画を視聴した回数を記録しています。現在、毎日ビデオを視聴しているユーザーの数のグラフを作成しようとしています。
UserVideoWatching.where("created_at >= ? AND user_id != ?",1.month.ago, User.elephant.id).group("DATE(created_at)").reorder('created_at').count
SQLを生成します
SELECT COUNT(*) AS count_all, DATE(created_at) AS date_created_at FROM `user_video_watchings` WHERE (created_at >= '2013-01-27 10:43:24' AND user_id != 7) GROUP BY DATE(created_at) ORDER BY created_at
これにより、毎日視聴されたすべての動画に対して正しい結果が得られますが、前述したように、各ユーザーに 1 回だけ表示したいと考えています。
私が欲しいSQLは
SELECT COUNT(DISTINCT user_id) AS count_all, DATE(created_at) AS date_created FROM `user_video_watchings` WHERE (created_at >= '2013-01-27 10:33:18' AND user_id != 7) GROUP BY DATE(created_at) ORDER BY created_at
ので、私は考えました
UserVideoWatching.where("created_at >= ? AND user_id != ?",1.month.ago, User.elephant.id).group("DATE(created_at)").reorder('created_at').select('COUNT(DISTINCT user_id) AS count_all, DATE(created_at) AS date_created')
私がしたいことをするだろう。しかし、これは
[#<UserVideoWatching >, #<UserVideoWatching >]
ハッシュではなく。
何か案は?
Rails 3.1 と mysql を使用しています