2017-01-16 4 views
1

Я ищу лучший способ получить сумму абсолютных значений с помощью Ruby и Postgres.Абсолютная ценность в postgres

Я попытался строку ниже, но это дает неправильную сумму:

Day.last.transactions.sum { |r| r.value_cents.abs } 
+0

Неправильно, каким образом? Это кажется довольно простым, хотя он все тянет все в Rails и делает там суммирование, а не в db, которое было бы быстрее. – Iceman

+0

Вызов '.to_a' в вашей коллекции транзакций может помочь –

ответ

4

Вы можете сделать это с Postgres, как это что гораздо быстрее, чем тянуть все в Rails и делать расчет там.

Day.last.transactions.pluck('sum(abs(value_cents))::integer') 
+0

Моя ошибка и ваше решение работает! –

+0

Рад это слышать! – Iceman

Смежные вопросы