Ich glaube, Sie suchen nach einer Abfrage wie dieser:
SELECT * FROM (SELECT widgetstats.*, row_number() OVER () AS rownum FROM widgetstats ORDER BY id) stats WHERE mod(rownum,3) = 0
Dies ist mit ActiveRecord schwierig zu erstellen, sodass Sie möglicherweise gezwungen sind, Folgendes zu tun:
@widgetstats = self.widgetstats.find_by_sql(
%{
SELECT * FROM
(
SELECT widgetstats.*, row_number() OVER () AS rownum FROM widgetstats ORDER BY id
) AS stats
WHERE mod(rownum,3) = 0
}
)
Natürlich möchten Sie die verwendete Reihenfolge ändern und WHERE-Klauseln oder andere Modifikationen hinzufügen, die Ihren Anforderungen entsprechen.