【发布时间】:2012-12-17 17:42:15
【问题描述】:
让我解释一下我想做的事情,我有一个表格Clicks,其中保存了产品的所有点击。我想制作一张图表,说明客户点击了多少次。
此图表需要日、月和年视图。
我需要一个散列或一个对象来运行图表。
我的想法是我得到类似的东西:
data( 2012 => [ 01 => 100, 02 => 300, 03 => 50 etc.], 2011 => [ 01 => 100, 02 => 300, 03 => 50 etc.])
如何按这样的顺序从 postgresql 数据库中检索所有数据?我想获取created_at 字段并从那里提取日期。在以后的过程中,必须计算特定月份的所有项目。
我在这个问题上苦苦挣扎,有人能把我推向正确的方向吗?
【问题讨论】:
-
如果您可以按天保存总点击次数,那么按月和按年检索总点击量就变得微不足道了,因为您只需总结 30、31、365、366 天的总点击次数。
-
您想简单地描述您的数据库的架构,还是我们应该想象地为字段和表拼凑名称?而且,向我们展示您编写的代码示例如何,这样我们就不会重新发明您的特定轮子?
-
数据库中的字段是“user_id”、“product_id”、“created_at”、“updated_at”。当没有可显示的内容时,图表将显示 0。我想做的是: Clicks.where('user_id = ?', current_user.id).count .. 这会计算来自该用户的所有点击,但不在一段时间。从stackoverflow的另一个问题,我得到:@clicks = Click.select('count(distinct(id)) as id, year(created_at) as y, month(created_at) as m').group('y, m').where({:user_id => current_user.id}) 但是这一年的中断(created_at)
-
还尝试了以下方法:@clicks = Click.where({:user_id => current_user.id}).count(:group => "strftime('%m',date")跨度>
标签: ruby-on-rails ruby postgresql activerecord