Расчет суммы активной записи - PullRequest
0 голосов
/ 25 октября 2011

Помогите мне, пожалуйста.У меня есть таблица с полями онлайн и офлайн => когда человек заходит в онлайн и офлайн.Если человек все еще в сети, поле offline будет равно NULL и будет обновляться только после того, как человек переходит в автономный режим.

И мне нужно рассчитать продолжительность сеансов, но с использованием sql.У меня есть две области:

scope :since, lambda { |date| where(["online >= ?", date.to_time.midnight]) }
scope :upto, lambda { |date| where(["online <= ?", date.to_time.end_of_day]) }

, которая помогает мне фильтровать записи о людях.Как правильно рассчитать продолжительность после применения необходимых областей?(или некоторые другие заявления).Есть ли в activerecord что-то вроде IF NULL и как я могу использовать это, если оно действительно существует?

Спасибо!

1 Ответ

1 голос
/ 26 октября 2011

вы можете снова использовать функцию sum.

Model.where(...condition....).sum("IFNULL(offline, CURRENT_TIMESTAMP)-online")

И я думаю, что к области вы можете просто добавить метод суммы, который я использовал в этом примере

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...