我试图在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子句或用于聚合函数
应该怎么做?
答案 0 :(得分:0)
分组依据会将您的记录分组为不同的列,但是在您的查询中,postgres会混淆从song_details.id
组中选择title
,因此请摆脱以下操作
SongDetail.where(song_id: id).group('title').order('COUNT(*) DESC').select('title').limit(1)