Найти максимум за день в Rails

#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)