« jruby + tomcat でサイトを作ってみました | トップページ | 最近良く出るclamavのエラー対応(centos5) »

ruby on rails (Active Record)複数列をgroup by して countする方法

Active Recordで以下のようにcountを実行しても、複数列の値が取得できません。

Message.count(:group => "rcv_user_id, send_user_id")

=>[[ 3, 2] , [ 4, 2]]

※一番最後に指定した列の値+行数

このような場合には、countを使わず、通常のfindを使用します。

Message.find(:all , :select => "count(*) count, rcv_user_id, send_user_id":group => "rcv_user_id, send_user_id")

結果をオブジェクト(インスタンス)から取得するときにも、countやメソッド名で取得できるので、ソースの可読性が良くなります。

もう、count使わないほうが良いカナと思ってしまいます。

« jruby + tomcat でサイトを作ってみました | トップページ | 最近良く出るclamavのエラー対応(centos5) »

コメント

コメントを書く

コメントは記事投稿者が公開するまで表示されません。

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.f.cocolog-nifty.com/t/trackback/437240/30161610

この記事へのトラックバック一覧です: ruby on rails (Active Record)複数列をgroup by して countする方法:

« jruby + tomcat でサイトを作ってみました | トップページ | 最近良く出るclamavのエラー対応(centos5) »