仅返回此ActiveRecord查询中的唯一记录

乔尔

我在Rails中轻度复杂的ActiveRecord查询3.2 / Postgres的是那些回报文档相关最相关的的所有文件,用户在过去收藏。

问题是,尽管指定了uniq我的查询,但不会返回不同的文档记录:

 Document.joins("INNER JOIN related_documents ON 
                 documents.docid = related_documents.docid_id")
         .select("documents.*, related_documents.relevance_score")
         .where("related_documents.document_id IN (?)",    
                  some_user.favorited_documents)
         .order("related_documents.relevance_score DESC")
         .uniq
         .limit(10)

我用一个RelatedDocument连接表,利用排名每个关系related_document.relevance_score我使用采样前10前订购查询结果(参见这个问题对于模式描述。)

问题在于,因为I select("documents.*, related_documents.relevance_score"),多次返回但具有不同relevance_scores结果的同一文档记录被视为唯一结果。(即,如果文档是多个收藏文档的related_document。)

如何返回唯一Documents不管related_document.relevance_score

我尝试将拆分select为两个单独的选择,并且更改uniq查询中的位置没有成功。

不幸的是,我必须select("related_documents.relevance_score")按此字段排序结果。

谢谢!

更新-解决方案

感谢下面的Jethroo,这GROUP BY是需要添加的内容,它为我提供了以下工作查询:

 Document.joins("INNER JOIN related_documents ON 
                 documents.docid = related_documents.docid_id")
         .select("documents.*, max(related_documents.relevance_score)")
         .where("related_documents.document_id IN (?)",    
                  some_user.favorited_documents)
         .order("related_documents.relevance_score DESC")
         .group("documents.id")
         .uniq
         .limit(10)
喷气式飞机

你必须试图将其组documents.docid看到http://guides.rubyonrails.org/active_record_querying.html#group

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从查询中查找唯一记录

来自分类Dev

根据访问中的某些条件查询以仅显示唯一记录

来自分类Dev

如何在mysql中仅选择唯一记录

来自分类Dev

在MS Access查询中获取唯一记录

来自分类Dev

如何仅选择唯一记录

来自分类Dev

MySQL查询以查找唯一记录

来自分类Dev

INSERT查询唯一记录-MySQL

来自分类Dev

MySQL-返回唯一记录

来自分类Dev

返回3个表中具有唯一记录的普通记录的相加

来自分类Dev

MySQL查询查找唯一记录

来自分类Dev

运行查询以基于表查找唯一记录

来自分类Dev

计算唯一记录所需的查询帮助

来自分类Dev

选择唯一记录

来自分类Dev

访问查询以提取最多一个记录但另一记录唯一的记录

来自分类Dev

只为SQL中的条件选择唯一记录

来自分类Dev

如何在Rails中显示唯一记录?

来自分类Dev

如何按行数在python中查找唯一记录?

来自分类Dev

Laravel:从数据库中检索唯一记录

来自分类Dev

加入后从表中获取唯一记录

来自分类Dev

只为SQL中的条件选择唯一记录

来自分类Dev

快速从大文件中获取唯一记录

来自分类Dev

如何避免所有存在重复的记录并仅获取唯一记录?

来自分类Dev

使用唯一记录作为表头

来自分类Dev

MySQL:批量更新唯一记录

来自分类Dev

Mysql唯一记录2列

来自分类Dev

如何获得唯一记录

来自分类Dev

雄辩的查询构建复杂的查询,以获取在同一表的2个不同列中搜索ID的唯一记录

来自分类Dev

从具有SQL记录中唯一记录的表中获取最小的日期

来自分类Dev

当所有行都相同时访问查询唯一记录