Ruby on rails Rails 4:Rails添加窗口和WITH子句的方式?

Ruby on rails Rails 4:Rails添加窗口和WITH子句的方式?,ruby-on-rails,postgresql,rails-activerecord,Ruby On Rails,Postgresql,Rails Activerecord,对于使用Rails 4.2.5和Postgres 9.3的项目,我尝试实现一些类似于中建议的查询3的查询 除了model.find_by_sql和hacky model.joins之外,是否可以添加WINDOW子句?我发现了一种使用连接来指定WHERE和WINDOW子句的方法,但是可读性是窗外双关语的意思:。我还喜欢在SELECT之前添加一个WITH子句,这样joins hack就根本不起作用了 非常感谢您的任何建议。对于任何非琐碎的问题,我都会直接查找sql。ORM倾向于将查询分成几部分,但现

对于使用Rails 4.2.5和Postgres 9.3的项目,我尝试实现一些类似于中建议的查询3的查询

除了model.find_by_sql和hacky model.joins之外,是否可以添加WINDOW子句?我发现了一种使用连接来指定WHERE和WINDOW子句的方法,但是可读性是窗外双关语的意思:。我还喜欢在SELECT之前添加一个WITH子句,这样joins hack就根本不起作用了


非常感谢您的任何建议。

对于任何非琐碎的问题,我都会直接查找sql。ORM倾向于将查询分成几部分,但现实并非如此。通过与AREL合作,您可能可以做一些事情,但如果您担心可读性,那么这很难解决问题。有什么特别的原因让您不想通过sql查找?我试着保持Rails的方式。感谢您为我确认项目现实已从ORMs毕业的事实:。sql正在使用find_by_。有时候Rails的方式是愚蠢的,有时候是短视的,有时候是直截了当的。当然,我相信真正的信徒会不同意我的观点。我会直接找到任何非琐碎的东西。ORM倾向于将查询分成几部分,但现实并非如此。通过与AREL合作,您可能可以做一些事情,但如果您担心可读性,那么这很难解决问题。有什么特别的原因让您不想通过sql查找?我试着保持Rails的方式。感谢您为我确认项目现实已从ORMs毕业的事实:。sql正在使用find_by_。有时候Rails的方式是愚蠢的,有时候是短视的,有时候是直截了当的。当然,我相信真正的信徒不会同意我的观点。
-- use Window Functions
-- performs a SINGLE scan of the table
SELECT DISTINCT ON (usr_id)
  last_value(time_stamp) OVER wnd,
  last_value(lives_remaining) OVER wnd,
  usr_id,
  last_value(trans_id) OVER wnd
 FROM lives
 WINDOW wnd AS (
   PARTITION BY usr_id ORDER BY time_stamp, trans_id
   ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
 );