酒と泪とRubyとRailsと

Ruby on Rails と Objective-C は酒の肴です!

ActiveRecordでgroup Byしてカウントをして、カウント数でorderする

今回は本当に自分用のメモです。ActiveRecordで特定のカラムをgroup byしてカウントして、そのカウント数を元にorder byして、配列で取得する手順です。日本語おかしいと思いますんで、コードでw


コード例

1
Product.where(category: "MP3 Player").group(:maker).order('count_maker desc').count('maker').keys

これはMP3プレイヤーのProductのmaker名をレコード数の多い順に並べてその結果のハッシュのkeyであるmaker名を配列として取得しています。

すごく個人的な使い方でもっといい方法があると思いますが、今までやりたくってできなかったことだったので、個人的にはやる方法を見つけることができて大感激です!

Special Thanks

ruby on rails - “Order by” result of “group by” count? - Stack Overflow

逆引きRuby - ハッシュ

おすすめの書籍