sql >> Database teknologi >  >> RDS >> PostgreSQL

Postgres vindue funktion kolonne med skinner

prøv dette:

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

det skulle returnere dine Character-objekter med en rank-attribut, som dokumenteret her . Dette er dog muligvis ikke database-agnostisk og har en tendens til at blive rodet, hvis du passerer rundt om objekterne.

en anden (dyr) løsning er at tilføje en rangkolonne til din tabel og få et tilbagekald til at genberegne alle posters rangering ved hjælp af .order, hver gang en post gemmes eller destrueres.

rediger:

en anden idé, der er egnet til enkelt-record-forespørgsler, kan ses her




  1. få fælles rækker fra en tabel mod en hvilken som helst kolonne

  2. Returliste<String> ved hjælp af Spring jdbc fra Oracle-lagret procedure med brugerdefineret objekt

  3. databasegendannelse til en bestemt tilstand til test

  4. Logstash læser ikke nye poster ind fra MySQL