如何在Rails中使用uniq相对于列

时间:2014-07-08 05:04:41

标签: sql ruby-on-rails ruby ruby-on-rails-4

我有一个名为Employee.rb的模型 我想选择所有内部Employee表,但不重复employeeID 例如。

id  emp_name employeeID shop_id
 1    name1     13        4
 2    name2     15        5
 3    name3     16        4
 4    name2     15        3
 5    name2     15        4
 6    name4     18        6

如果这是表结构,我想获得像这样的活动记录关系

#<ActiveRecord::Relation [#<Employee id: 1, emp_name: name1, employeeID: 13, shop_id: 4>, #<Employee id: 2, emp_name: name2, employeeID: 15, shop_id: 5>, #<Employee id: 3, emp_name: name3, employeeID: 16, shop_id: 4>, #<Employee id: 6, emp_name: name4, employeeID: 18, shop_id: 6>>

其中employeeID是唯一的。不要重复

在Ruby on Rails.Pls帮助

中是否有任何单行命令可以执行此操作

2 个答案:

答案 0 :(得分:2)

到目前为止我得到的是:

Employee.all.uniq_by(&:employee_id)

您还可以使用where子句:

Employee.where(name: 'name2').uniq_by(&:employee_id)

答案 1 :(得分:2)

使用Postgres你可以做到

Employee.select('DISTINCT ON (employeeID) *')