对于这个表:ActiveRecord的:过滤重复
Users
| id | name | active |
| 1 | bob | true |
| 2 | bob | false |
| 3 | alice | false |
我如何查询使用ActiveRecord此表(Rails的4.2,PostgreSQL的),如果得到的关系应该
- 已填充的所有属性
- 不包含重复名称
- 宁愿将活动记录转为非活动记录
- 能够调用.Count之间,其中count返回一个整数的
- 保持一个ActiveRecord ::关系
正确的结果集应该是这样的:
Users
| id | name | active |
| 1 | bob | true |
| 3 | alice | false |
我试过到目前为止:
# Works as for the result set, but raises when calling .count
User.select('DISTINCT ON (users.name) *')
.order(users.name, users.active DESC')
虽然计数的作品,这个查询的访问从关系中的元素失败,因为“的SELECT DISTINCT,ORDER BY表达式必须出现在选择列表' – tobmatth
我不明白“关系元素”是什么意思? – meshin
'User.select('DISTINCT name')。order('name,active DESC')。第一个' – tobmatth