当前位置: 首页 > 面试题库 >

ActiveRecord查找-跳过记录或获取每N条记录

宗政德宇
2023-03-14
问题内容

我想做一个查询,从中选择一堆数据,但是我希望能够通过仅选择每三个记录,甚至每个百分之一的记录来降低数据的分辨率。任何。

有什么简单的方法可以用ActiveRecord做到这一点吗?


问题答案:

在Oracle中,我将其编写如下:

YourModel.find(:conditions => 'MOD(ROWNUM,3) = 0')

这样做的好处是,过滤器发生在数据库中,因此不会检索所有内容。

在PostgreSQL中,这称为ROW_NUMBER(实际上是SQL标准)。在MySQL中,不支持此功能。

在mysql中,您可以使用来模仿rownum SELECT @rownum:=@rownum+1 rownum, t.* FROM (SELECT @rownum:=0) r, mytable t;。所以我猜像

Bar.find_by_sql("select * from (SELECT @rownum:=@rownum+1 rownum, t.* FROM (SELECT @rownum:=0) r, mytable t) where mod(rownum,3) = 0")

应该管用。



 类似资料:
  • 问题内容: 以下是最简单的示例,尽管任何解决方案都应能够扩展到需要n个顶级结果的地方: 给定下面的表格,其中包含“人员”,“组”和“年龄”列,您将如何 获得每个组中 年龄 最大的2个人? (组内的关系不应产生更多结果,而应按字母顺序给出前两个) 所需的结果集: 注意: 这个问题建立在先前的问题上- 获取每组分组的SQL结果的最大值的记录 -用于从每组中获取一个顶行,并且从@Bohemian那里收到

  • 我正在尝试对存储在elasticsearch中的记录实现搜索查询。记录结构看起来像这样。 一个框可以包含多个项目。例如,Box3可以有Item1、Item2和Item3。因此,在elasticsearch中,我将有3个不同的文档。同时,同一个框和同一个项目也可以存在,但地址不同。这些文档的transactionID可能相同,也可能不相同。 我的要求是获取最后n个最近的和不同的Transaction

  • 本文向大家介绍MySQL获取所有分类的前N条记录,包括了MySQL获取所有分类的前N条记录的使用技巧和注意事项,需要的朋友参考一下 比如有文章表 Article(Id,Category,InsertDate),现在要用SQL找出每种类型中时间最新的前N个数据组成的集合,一段不错的代码,留存备用 @N 就是你要取多少条 下面是我用到了一个产品分类表中,superId是大分类,prcid是产品分类。能

  • 问题内容: 假设我有这样的pandas DataFrame: 我想获得一个新的DataFrame,其中每个ID的前2个记录如下: 我可以对分组依据中的记录进行编号: 但是,有没有更有效/更优雅的方法来做到这一点?还有一种更优雅的方法来对每个组中的数字进行记录(例如SQL窗口函数row_number())。 问题答案: 你试过了吗 Ouput生成: (请记住,根据数据,你可能需要先进行订购/排序)

  • 问题内容: 我试图从看起来像这样的数据库表结果中选择前2条记录 我试过这个查询 但是有些主题,例如失踪的地方,我什至尝试了以下链接的建议 如何选择每个组的前N行? 但是我为每个受检者得到两个以上 我究竟做错了什么? 问题答案: 您可以使用相关的子查询: 该查询通过串联三列来构造单列主键。如果您有真正的主键(如),则可以用代替。 SQL Fiddle中的示例。

  • 问题内容: 我在数据库上有一些性能测试结果,我要做的是将每1000条记录 分组 (以前按日期升序排列),然后将结果与 AVG 进行汇总。 我实际上正在寻找标准的SQL解决方案,但是任何T-SQL特定的结果也值得赞赏。 查询如下所示: 问题答案: 这样的事情应该会让您入门。如果您可以提供实际的架构,我可以进行适当的更新。