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

Rails查询-每天的最新帖子

丘向荣
2023-03-14
问题内容

一个Userhas_many
Posts。我想检索每天的最新帖子(使用created_at),而忽略其他可能早些写的帖子。提出此问题的另一种html" target="_blank">方法可能是按部门要求每个最高薪水收入的雇员-
我认为也是一样。

如何在Rails(最好是4.0)中编写此查询?我认为这与它有关groupmaximum但我似乎无法理解。有没有办法不用SQL来做到这一点?

为了明确起见,我想返回的是一系列post对象,它们是在各自日期上最后写入的对象。

谢谢!


问题答案:

它不是很干净,但是可以在Rails 3(在我的例子中是从Book模型中获取)中使用PostgreSQL语法来将created_at截断为日期:

max_created_at_list = Book.select("max(created_at) as created_at").group("date_trunc('day',created_at)")
last_books = Book.where(:created_at => max_created_at_list)

… 要不就:

Book.where(:created_at =>Book.select("max(created_at) as created_at").group("date_trunc('day',created_at)"))

您希望为大型数据集在created_at上建立一个索引,并且在数据库级别上将created_at限制为不为null,或者如果您使用的RDBMS不对null进行索引,则使用“
is not null”谓词(例如Oracle)



 类似资料:
  • 问题内容: 我正在尝试获取与我下载的每个帖子相关的最新1或2条评论,有点像instagram一样,因为它们显示每个帖子的最新3条评论,到目前为止,我正在获得帖子和喜欢的计数。 现在,我需要做的就是弄清楚如何获取最新评论,而不是太确定如何处理它,这就是为什么我希望拥有更多专业知识的人可以为我提供帮助! 这是我当前的查询: 基本上,评论与点赞存储在同一表中。 所以表是,然后我有一列存储注释文本,然后“

  • 问题内容: 我正在尝试并且未能将我相对简单的SQL语句转换为可在Doctrine中使用的语句。 这是SQL语句,当对我的数据库运行时,它可以按要求工作: 到目前为止,这是DQL尝试: 当前哪个出现此错误: 表格本身非常简单:ID,名称,分数,平台,日期 有多个名称相同但得分不同的条目。我只想显示每个名称的“高分”。我已经尝试了一两天了,没有运气。谁能指出我正确的方向? 问题答案: 您尝试使用主义进

  • 问题内容: 可以说我有2个表:blog_posts和类别。每个博客帖子仅属于一个类别,因此此处的两个表之间基本上有一个外键。 我想从每个类别中检索2个最新的帖子,是否可以在单个请求中实现?GROUP BY会将所有内容分组,而在每个类别中只剩下一行。但我要其中两个。 执行1 + N查询(N =类别数)会很容易。首先检索类别。然后从每个类别检索2个帖子。 我相信执行M个查询(M =我希望从每个类别获得

  • 问题内容: 任何人都可以发布SQL查询来计算每天的总订单数吗? 以下是这些列及其在我的数据库中的数据。 例如,2009年2月有2个订单 我需要一个SQL查询,该查询将计算并显示每天的总金额。 因此,对于2009年2月3日,总计为699.98 我需要在图表中显示每天的总订单金额 如果使用PHP会更容易做到,那么也要提一下它。 更新: 我想澄清一下,我需要本月的每日总金额。我在最初的问题中忘记提及这一

  • 问题内容: 我有一个带有文档条目的父表,还有一个历史记录表,每次用户访问其中一个文档时,该表都会记录一个审计条目。 我正在编写一个搜索查询,以返回具有最新用户ID的文档列表(按各种条件过滤),以访问结果集中返回的每个文档。 因此对于 我希望从搜索中获得回报,例如 我可以轻松地通过一个SQL查询以及两个表之间的联接来做到这一点吗? 问题答案: 修改Andy White产生的内容,并用DB2(和ISO

  • 问题内容: 我有一张桌子上有用户帖子。我需要显示每天每位用户从1到最多n条帖子。 例子: 我需要一个查询,例如返回每个用户每天最多2条帖子的查询: 我尝试使用GROUP和HAVING,但是我仅获得前n个记录,而不是每个用户每天的前n个记录: 问题答案: 试试这个糟糕的SQL代码:) 结果: 在这里摆弄。 我认为如果按日期降序排序会更合适,因为实际上是最接近当前日期的前2位。