मैं वीडियो की श्रृंखला देखने की संख्या रिकॉर्ड कर रहा हूं। अब मैं उन उपयोगकर्ताओं की संख्या का ग्राफ बनाने की कोशिश कर रहा हूं जो हर दिन कोई वीडियो देखते हैं।रेल COUNT SELECT DISTINCT
UserVideoWatching.where("created_at >= ? AND user_id != ?",1.month.ago, User.elephant.id).group("DATE(created_at)").reorder('created_at').count
एसक्यूएल
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
जो सभी वीडियो प्रत्येक दिन देखा के लिए सही परिणाम का उत्पादन पैदा करता है, लेकिन जैसा कि मैंने कहा कि मैं केवल प्रत्येक उपयोगकर्ता एक बार दिखाना चाहते हैं।
एसक्यूएल मैं चाहता हूँ
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 >]
देता है बल्कि।
कोई विचार?
मैं रेल 3.1 और mysql
इस तरह अच्छे है - धन्यवाद – Edward
रेल http://stackoverflow.com/a/ देखना 4 में पदावनत समाधान के लिए 1 9362288/670433 जो मॉडलName.distinct.count (: attribute_name) का उपयोग करना है – s2t2
आप मॉडल के सभी गुणों को कैसे वापस कर सकते हैं? –