Ik denk dat je op zoek bent naar een zoekopdracht zoals deze:
SELECT * FROM (SELECT widgetstats.*, row_number() OVER () AS rownum FROM widgetstats ORDER BY id) stats WHERE mod(rownum,3) = 0
Dit is moeilijk te bouwen met ActiveRecord, dus je zou kunnen worden gedwongen om iets te doen als:
@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
}
)
U wilt natuurlijk de gebruikte volgorde wijzigen en eventuele WHERE-clausules of andere wijzigingen toevoegen om aan uw behoeften te voldoen.