Not getting accurate data on multiple field group

4 views
Skip to first unread message

Pradeep Sethi

unread,
Dec 6, 2012, 6:59:54 AM12/6/12
to rubyonra...@googlegroups.com
Hi,

I am executing this query:

=====
@monthly_data = ReviewRating.group("date_format(insertdate, '%Y/%m'),
type").count(:conditions => {:insertdate => '2011-01-01'..'2099-01-01'})

(12.7ms) SELECT COUNT(*) AS count_all, date_format(insertdate,
'%Y/%m'), type AS date_format_insertdate_y_m_type FROM
`tc_reviews_rating` WHERE (rev_user_id != 0) AND
(`tc_reviews_rating`.`insertdate` BETWEEN '2011-01-01' AND '2099-01-01')
GROUP BY date_format(insertdate, '%Y/%m'), type

=> {1=>477, 2=>26}
=====

where as if I execute the SQL directly, I get the correct data.


What am I doing incorrect? Thanks in advance for the help.


Pradeep

--
Posted via http://www.ruby-forum.com/.

Frederick Cheung

unread,
Dec 7, 2012, 6:41:20 AM12/7/12
to rubyonra...@googlegroups.com

On Thursday, December 6, 2012 11:59:54 AM UTC, Ruby-Forum.com User wrote:

=====
 @monthly_data = ReviewRating.group("date_format(insertdate, '%Y/%m'),
type").count(:conditions => {:insertdate => '2011-01-01'..'2099-01-01'})

When you use the string form of group, rails doesn't look into the string to see that you are grouping on 2 different things.
I'd try group("date_format(insertdate, '%Y/%m')", "type")

Fred
Reply all
Reply to author
Forward
0 new messages