【发布时间】:2013-11-18 18:18:32
【问题描述】:
我想将一个表中的结果按两列分组:created_atp_id,我需要按 p_id 分组,因为我需要唯一值,我尝试使用 distinct 来做到这一点但在我的情况下并没有按照我想要的方式工作。
Report.group("date(created_at)").group(:p_id).select("date(created_at) as created_at, count(*) as count, p_id")
r = _
r.count will generate this:
{[Mon, 18 Nov 2013, 11]=>1, [Mon, 18 Nov 2013, 8]=>1, [Mon, 18 Nov 2013, 13]=>1, [Mon, 18 Nov 2013, 12]=>3, [Mon, 18 Nov 2013, 10]=>1, [Mon, 18 Nov 2013, 7]=>1, [Mon, 18 Nov 2013, 3]=>1, [Mon, 18 Nov 2013, 2]=>1, [Mon, 18 Nov 2013, 9]=>1, [Mon, 18 Nov 2013, 14]=>1, [Mon, 18 Nov 2013, 6]=>1}
但我需要不同格式的结果,我应该添加什么才能得到这样的结果:{Mon, 18 Nov 2013=>11} 其中11 是上述 sql 语句生成的记录总数。
谢谢。
【问题讨论】:
-
我不明白你的问题。请提供一个更好的例子。
-
您按
p_id分组,然后您想按相同的值取消分组?为什么不直接删除group(:p_id)调用? -
我编辑了我的问题,并且很清楚,我想做的是每天获取唯一
p_ids` 的总数。
标签: ruby-on-rails ruby-on-rails-3 activerecord ruby-on-rails-4 rails-postgresql