【发布时间】:2016-03-30 15:58:19
【问题描述】:
Rails 4.2.5、PostgreSQL 9.4+
我有一张 DailyMetric 表。顾名思义,它有每个员工的每日指标。我正在尝试将这些指标汇总到各个时期,例如一周至今、上周、本月至今等。我的查询提取了选定的记录,但我想汇总该时期内的记录,但该时期是表的外部变量。就目前而言,查询是:
records = DailyMetric.
where('metrics_date >= ? AND metrics_date <= ?', period.first, period.last).
select("associate_logon as logon, metrics_date as logon_date,
sum((metrics #>> '{\"Login\"}')::NUMERIC) as total_logons").
group('associate_logon, metrics_date')
截至今天,结果是我获得了每周从周一开始的周一和周二的每个员工的记录。而不是使用metrics_date进行分组,我想使用期间进行分组。
我可以通过修改查询获得想要的结果,还是我必须自己在外部运行这样的摘要?如果需要,我可以做外部总结。我只是想知道我是否可以在查询中做到这一点。
FWIW 为完整起见,登录信息等统计信息使用 JSONB 存储在 PostgreSQL 中。
【问题讨论】:
标签: sql ruby-on-rails postgresql