在Rails 3中,如何基于唯一列值选择行?我需要获取所有列,例如:
这只返回日期列,但我想要所有的列(名称、日期、年龄、创建时间),而不仅仅是日期。
谢谢您的帮助。
SELECT COUNT(DISTINCT date) FROM records
这只返回日期列,但我想要所有的列(名称、日期、年龄、创建时间),而不仅仅是日期。
谢谢您的帮助。
SELECT COUNT(DISTINCT date) FROM records
问题在于,按照定义,可能存在多条具有相同日期的记录。需要在用户空间中使用逻辑来确定要使用具有唯一日期的多个记录中的哪一个。以下是获取这些行的一些代码:
Record.select("distinct date").each do |record|
records = Record.find_by_date record.date
puts records.count # do something with the records
end
如果你想要的是多列中的唯一性,那么在distinct查询中列出所有相关列:
Record.select("distinct date, name, age, created_at").each do |record|
puts record.date
puts record.name
puts record.age
puts record.created_at
# ``record'' still represents multiple possible records
end
我认为这会对你有所帮助
Model.find(:all, :select => 'DISTINCT name, date, age, created_at')
请使用它并让我知道。
Model.group(:column)
Record.group(:date)
Model.select('DISTINCT name, date, age, created_at')
。