我試着去找到解決問題的有效途徑:找到行,其中有另一行與表中的相對值
我需要找到一個表中的所有行那裏是另一行以相反的列值。
比如我有列id
和amount
| id | amount |
|----|--------|
| 1 | 1 |
| 2 | -1 |
| 3 | 2 |
| 4 | -2 |
| 5 | 3 |
| 6 | 4 |
| 7 | 5 |
| 8 | 6 |
交易查詢應返回只有第4行:
| id | amount |
|----|--------|
| 1 | 1 |
| 2 | -1 |
| 3 | 2 |
| 4 | -2 |
我目前的解決方案是非常有效的,因爲我經歷1000年的交易:
transactions.find_each do |transaction|
unless transactions.where("amount = #{transaction.amount * -1}").count > 0
transactions = transactions.where.not(amount: transaction.amount).order("@ amount DESC")
end
end
transactions
是否有內置的Rails
或Postgresql
函數可以幫助解決這個問題?
我是一個新手。但我不明白你爲什麼選擇了4條第一條線。你可以解釋嗎 ? – Maxence
@Maxence這4行中的每一行在表中都有另一行,並有相反的值。例如,「-1」與「1」相反。 – Deekor
你不需要明確地配對它們嗎?只是讓他們成批? (可以說10行的值爲1,45行的值爲-1,你想要55行全部一起?) – Maxence