PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Zwróć co n-ty wiersz z bazy danych za pomocą ActiveRecord w szynach

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.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Postgres - Przekazywanie nazwy tabeli jako parametru i przechowywanie wyniku w pliku

  2. Jak typy dat są obsługiwane przez sterownik JDBC?

  3. Atomowo ustaw wartość SERIAL podczas zatwierdzania transakcji

  4. Złożony klucz podstawowy w django

  5. Jak odczytać wszystkie wiersze z ogromnego stołu?