PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Cột chức năng cửa sổ Postgres với Rails

hãy thử cái này:

Character.find_by_sql("SELECT *, rank() OVER (ORDER BY points DESC) FROM characters")

nó sẽ trả về cho bạn các đối tượng Character có thuộc tính xếp hạng, như được ghi lại tại đây . Tuy nhiên, điều này có thể không phải là bất khả tri cơ sở dữ liệu và có xu hướng lộn xộn nếu bạn di chuyển xung quanh các đối tượng.

một giải pháp khác (đắt tiền) là thêm cột xếp hạng vào bảng của bạn và có một lệnh gọi lại tính toán lại xếp hạng của tất cả các bản ghi bằng cách sử dụng .order bất cứ khi nào bản ghi được lưu hoặc hủy.

chỉnh sửa:

bạn có thể xem một ý tưởng khác phù hợp cho các truy vấn một bản ghi tại đây




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách tốt nhất để chọn các hàng ngẫu nhiên PostgreSQL

  2. Làm cách nào để hiển thị WORK_MEM của các kết nối PostgreSQL bên ngoài?

  3. Các chế độ xem PostgreSQL security_barrier hoạt động như thế nào?

  4. Psycopg2 sử dụng hết bộ nhớ trên truy vấn chọn lọc lớn

  5. PostgreSQL Fibonacci Sequence - Truy vấn không có đích cho dữ liệu kết quả