Rails / SQL:如何在特定id上找到最常见的列值

时间:2017-02-27 10:35:11

标签: sql ruby-on-rails ruby postgresql orm

我试图在Ruby on Rails中为我的表中的特定SongId找到最常用的Title。这就是我到目前为止所做的:

SongDetail.where(song_id: id).group('title').order('COUNT(*) DESC').first[:title]

我一直收到错误消息:

  

PG :: GroupingError:ERROR:column" song_details.id"必须出现在   GROUP BY子句或用于聚合函数

应该怎么做?

1 个答案:

答案 0 :(得分:0)

分组依据会将您的记录分组为不同的列,但是在您的查询中,postgres会混淆从song_details.id组中选择title,因此请摆脱以下操作

SongDetail.where(song_id: id).group('title').order('COUNT(*) DESC').select('title').limit(1)