#ruby-on-rails #ruby #activerecord #max
#ruby-on-rails #ruby #activerecord #максимум
Вопрос:
В моем приложении у меня есть модель под названием Pdata, которая содержит (среди прочих) столбцы pdc (целое число) и временную метку. pdc — это значение измерения, которое выполняется каждые 5 минут.
Мой вопрос: каков наилучший способ получить максимальный pdc за каждый день?
Результатом должен быть список максимального значения pdc и метки времени (или Pdata.id ).
Большое спасибо, Андреас
Ответ №1:
Вы можете использовать комбинацию maximum
и group
. Вам нужно извлечь часть даты из метки времени и сгруппировать ее. Синтаксис для извлечения даты может варьироваться в зависимости от базы данных, но попробуйте:
Pdata.group("DATE(timestamp)").maximum(:pdc)
Ответ №2:
Попробуйте это
Pdata.where(timestamp: (Time.now.midnight - 1.day)).order(timestamp: :desc)