下面是查詢:PostgreSQL的查詢本地而不是工作在Heroku(相同的數據)
的ActiveRecord :: StatementInvalid(PGError:錯誤:在語法錯誤或接近 「過」 SELECT *,秩()以上(分區通過thread_i ... ^
SELECT *
FROM (
select *, rank() over (partition by thread_id order by created_at DESC)
from posts
where circle_id IN (134) OR (receiver_id=3)
) as dt
WHERE rank = 1
編輯:這裏是什麼,我試圖做一個詳細的解釋: Rails 3 app with PostgreSQL - Getting the list of messages grouped by converstation
原來Heroku的共享DB是一個Postgr因此,eSQL版本8.3沒有Windows功能,所以問題變成如何在PostgreSql 8.3中執行此查詢?
謝謝!
派生表的解決方案應與8.3工作。儘管'posts.created_at = dt.maxdt'可能會爲單個線程產生多個結果。您可能需要包含一個客戶端檢查來處理重複的'thread_id,created_at'對。重複的機會非常低,但「低」和「零」並不完全相同。 –
用可能的解決方案更新了我的答案,以解決重複問題... – Yahia