我有一个名为service
的模型,每个服务都有一个或多个usage
特定song
(加入usage.song_id
)。我想搜索一下用法并找到最常见的歌曲:
Usage.joins(:song).group(:song_id, :song_name).count :song_id
我想要按计数值排序的那些,所以我添加(在.count
之前)
.order("count_song_id DESC")
但是现在我还想要最近使用该歌曲的日期,这是存储在service
模型中的一个细节。所以我知道我需要添加到我的加入中:
Usage.joins(:song, :service)
所以基本上现在我有:
Usage.joins(:song, :service).group(:song_id, :song_name).order("count_song_id DESC").count :song_id
但是如何获得输出中每首歌的最近日期?
更新:理想情况下,我正在寻找类似的输出:
[
:song_id,
:song_name,
count_of_this_songs_usages,
most_recent_date_this_song_was_used
]
答案 0 :(得分:2)
好吧,我正在尝试这个。 select语句中的两个函数是否实际正常工作还有待观察。
Usage.select("MAX(services.date)", :song_name, "COUNT(song_id) AS count_song_id").joins(:service, :song).group(:song_name).order("count_song_id DESC")