sql >> Databasteknik >  >> RDS >> PostgreSQL

Postgres fönsterfunktionskolumn med Rails

prova detta:

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

det bör returnera dina karaktärsobjekt med ett rank-attribut, som dokumenterats här a> . Detta kanske inte är databasagnostiskt och tenderar att bli rörigt om du passerar runt objekten.

en annan (dyr) lösning är att lägga till en rangkolumn i din tabell och låta en callback räkna om alla posters rangordning med .order närhelst en post sparas eller förstörs.

redigera:

en annan idé som lämpar sig för frågor med en enda post kan ses här




  1. Se upp för en tabell nya poster i SQL-databasen

  2. Byta namn på kolumner med främmande nyckel i MySQL

  3. Perl dbi prepare anger fel citat

  4. OracleDataSource vs. Oracle UCP PoolDataSource