sql >> データベース >  >> RDS >> PostgreSQL

RailsでActiveRecordを使用して、データベースからn行ごとに返します

    次のようなクエリを探していると思います:

    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句やその他の変更を追加することをお勧めします。



    1. PostgreSQLデータベース構造をダンプする方法(各オブジェクトを別々のファイルに)

    2. SQLで列名の名前を変更するにはどうすればよいですか?

    3. 複数のテーブルで同じ値を検索する

    4. SQL Server-計算列のインデックス?