PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Coluna de função da janela Postgres com Rails


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

ele deve retornar objetos Character com um atributo de classificação, conforme documentado aqui . No entanto, isso pode não ser independente de banco de dados e tende a ficar confuso se você passar os objetos.

outra solução (cara) é adicionar uma coluna de classificação à sua tabela e ter um retorno de chamada para recalcular a classificação de todos os registros usando .order sempre que um registro for salvo ou destruído.

editar:

outra ideia adequada para consultas de registro único pode ser vista aqui