2013-04-15 63 views
0

我正在寻找帮助将我的MySQL查询转换为在PostgreSQL中工作。这是对RoR应用程序模型的查询。 任何帮助表示赞赏。将MySQL转换为Postgres

SELECT * FROM( 
    SELECT @row := @row + 1 AS rownum, id, device_id, name, quarterly 
    FROM (SELECT @row :=0) r, recurrent_tests 
    WHERE device_id = "+self.id.to_s+" AND quarterly = 1 
    ORDER BY name ASC 
) ranked 
WHERE (rownum-1) % 4 = "+(i-1).to_s) 
+0

相关:http://stackoverflow.com/questions/3959692/rownum-in- postgresql – leonbloy

回答

2
select * 
from (
    select row_number() over (order by name asc) as rownum, 
      id, 
      device_id, 
      name, 
      quarterly 
    from recurrent_tests 
) t 
where rownum - 1 % 4 = ... 

有关窗口职能(over (...)条款)了解更多详情请参见手册:
http://www.postgresql.org/docs/current/static/tutorial-window.html

+0

+1。 。 。打败我吧。 –