Das Problem dabei ist, dass es per Definition mehrere Datensätze mit demselben Datum geben kann. Es erfordert eine Logik im Benutzerbereich, um zu bestimmen, welcher der mehreren Datensätze mit dem eindeutigen Datum verwendet werden soll. Hier ist etwas Code, um diese Zeilen zu erhalten:
Record.select("distinct date").each do |record|
records = Record.find_by_date record.date
puts records.count # do something with the records
end
Wenn es Ihnen wirklich um die Eindeutigkeit zwischen mehreren Spalten geht, führen Sie alle relevanten Spalten in der eindeutigen Abfrage auf:
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
Die Tatsache, dass Sie distinct verwenden, bedeutet, dass jede zurückgegebene "Zeile" tatsächlich für n Zeilen, so dass die DB nicht weiß, welche der n Zeilen, aus denen die restlichen Spalten gezogen werden. Aus diesem Grund werden nur die in distinct verwendeten Spalten zurückgegeben. Es kann nichts anderes tun...