Я записываю, сколько раз пользователи просматривают серию видеороликов. Теперь я пытаюсь составить график количества пользователей, которые каждый день смотрят видео.
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
который дает правильные результаты для всех видеороликов, просмотренных каждый день, но, как я сказал, я хочу показывать только каждого пользователя один раз.
Я хочу, чтобы 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