Skip to content

Commit

Permalink
make code run faster
Browse files Browse the repository at this point in the history
  • Loading branch information
Neeraj Singh committed Jul 1, 2011
1 parent 112891b commit f325b35
Showing 1 changed file with 15 additions and 2 deletions.
17 changes: 15 additions & 2 deletions lib/admin_data/analytics/hm_association.rb
Expand Up @@ -35,19 +35,32 @@ def count_of_main_klass_records_in_hm_klass(count = nil)

having_sql = if count
"having count(#{hm_klass.table_name}.id) = #{count}"
operator = '='
else
"having count(#{hm_klass.table_name}.id) > 0"
operator = '>'
count = 0
end

sql = %Q{
select #{main_klass.table_name}.id, count(#{hm_klass.table_name}.id)
from #{main_klass.table_name} join #{hm_klass.table_name} on #{main_klass.table_name}.id = #{hm_klass.table_name}.#{foreign_key}
group by #{main_klass.table_name}.id
#{having_sql}
}
#main_klass.find_by_sql(sql).size

main_klass.find_by_sql(sql).size
sql = %Q{
select count(#{main_klass.table_name}.id) as count_data
from #{main_klass.table_name}
where
(
select count(#{hm_klass.table_name}.id)
from #{hm_klass.table_name}
where #{hm_klass.table_name}.#{foreign_key}=#{main_klass.table_name}.id
) #{operator} #{count}
}
main_klass.find_by_sql(sql).first['count_data'].to_i
end

end
Expand Down

0 comments on commit f325b35

Please sign in to comment.