PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Kembalikan setiap baris ke-n dari database menggunakan ActiveRecord di Rails

Saya pikir Anda mencari kueri seperti ini:

SELECT * FROM (SELECT widgetstats.*, row_number() OVER () AS rownum FROM widgetstats ORDER BY id) stats WHERE mod(rownum,3) = 0

Ini sulit dibuat menggunakan ActiveRecord, jadi Anda mungkin terpaksa melakukan sesuatu seperti:

@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
  }
)

Anda tentu ingin mengubah urutan yang digunakan dan menambahkan klausa WHERE atau modifikasi lain yang sesuai dengan kebutuhan Anda.



  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 json_agg menyertakan tajuk kolom - JSON salah?

  2. DAPATKAN DIAGNOSTIK dengan pernyataan COPY dalam fungsi Pl/pgsql

  3. Memesan hasil model bersarang yang penuh semangat di Node Sequelize

  4. Ulangi dimensi array di plpgsql

  5. Django bagaimana menghubungkan kembali setelah DatabaseError:query timeout