parent
有多个children
,其中每个child
都有一个created_at
列。
我们假设数据看起来像这样:
Parent 1:
- Child 1, created_at (last week sometime)
- Child 2, created_at (yesterday)
Parent 2:
- Child 3, created_at (today)
Parent 3:
- Child 4, created_at (today)
通过Rails使用PostgreSQL,如何获得parents
最近child
分组的唯一created_at
计数?输出应如下所示:[Yesterday: 1, Today: 2]
。请注意,由于父母有一个更近期的孩子,因此不会返回上周的created_at
。
我将使用原始SQL或ActiveRecord查询表单。谢谢!
答案 0 :(得分:0)
Select Max(Created_at), parentName from parentTable inner join ChildTable on child.FKey = ParentTable.PKey Group by parentName
答案 1 :(得分:0)
这样的事情应该有效。假设您的created_at
字段中有时间部分,我将在分组之前删除时间部分。这会将孩子按created day
分组。
SELECT date_trunc('day', c.created_at), COUNT(c.id)
FROM Parent p
JOIN Child c on p.id = c.parent_id
GROUP BY date_trunc('day', c.created_at)
ORDER BY date_trunc('day', c.created_at) DESC