我的问题与Rails 3 ActiveRecord: Order by count on association非常相似
给定模型的相同场景
Song has many :listens
我想按收听次数对歌曲进行分组。我的目标是查看歌曲的分布与收听次数。就像是...
song_listen_distribution = {0 => 24, 1 => 43, 2=>11, ... MAX_LISTENS => 1}
所以这song_listen_distribution[4]
将返回听过 4 次的歌曲数。
上面链接问题的接受答案让我非常接近,但我无法按“songs.listens_count”分组
Song.select("songs.id, OTHER_ATTRS_YOU_NEED, count(listens.id) AS listens_count").
joins(:listens).
group("songs.listens_count").
order("listens_count DESC")