次のようなクエリを探していると思います:
SELECT * FROM (SELECT widgetstats.*, row_number() OVER () AS rownum FROM widgetstats ORDER BY id) stats WHERE mod(rownum,3) = 0
これはActiveRecordを使用して構築するのが難しいため、次のようなことを強いられる可能性があります。
@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
}
)
使用する順序を変更し、ニーズに合わせてWHERE句やその他の変更を追加することをお勧めします。