我有一張表,transactions
,可能包含重複項(對於我們來說,副本是Transaction
,具有相同的account_id
,date
和amount
)。如何在AREL中加入表格以查找重複項?
我的英語語言功能的要求是:「我希望看到其中有具有相同ACCOUNT_ID,日期和金額存在超過1個交易的所有交易」。
上AREL放棄暫時,我公司生產的SQL是這樣的:
SELECT * FROM transactions t1, transactions t2
WHERE t1.id != t2.id
AND t1.date = t2.date
AND t1.amount = t2.amount
AND t1.account_id = t2.account_id
我使用Rails的3.2.x中和Postgres。
本來,我在AREL試過這樣:
Transaction.group(:account_id, :date, :amount).having("count(id) > 1")
但是,這給了我有關集合函數的SQL錯誤:
PG::Error: ERROR: column "transactions.id" must appear in the GROUP BY clause or be used in an aggregate function
..這是令人沮喪的,因爲我做不希望在group by子句中使用ID - 整個問題是我希望在檢查dupe時忽略ID。
我很感激,如果有人能指出我正確的方向AREL我需要使這個範圍 - find_by_sql
是偉大的,當你需要記錄,但我想創建一個ActiveAdmin範圍 - 它不喜歡數組。
我不介意downvotes,但我介意downvotes沒有意見,爲什麼我downvoted? – makdad 2013-02-21 02:13:15
可能是個人資料照片:P – pchap10k 2013-02-21 02:27:00