Myślę, że szukasz zapytania takiego jak to:
SELECT * FROM (SELECT widgetstats.*, row_number() OVER () AS rownum FROM widgetstats ORDER BY id) stats WHERE mod(rownum,3) = 0
Jest to trudne do zbudowania przy użyciu ActiveRecord, więc możesz być zmuszony do zrobienia czegoś takiego:
@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
}
)
Oczywiście będziesz chciał zmienić używaną kolejność i dodać dowolne klauzule WHERE lub inne modyfikacje, aby dopasować je do swoich potrzeb.