У меня есть модель расписания, которая выглядит так:
timesheet
-id
-total_hours
-user_id
-date
Теперь я хочу создать отчет, который выглядит так:
user_id total_hours
(У меня будет предложение where, которое будет выбирать строки для заданного диапазона дат, но эту часть я понимаю).
Является ли этот запрос я могу использовать activerecord для или должен ли я просто использовать psql для этого и использовать raw sql?
Попробуйте следующее:
TimeSheet.group(:user_id).sum(:total_hours)
Если требуется, введите хэш-формат, например
{251=>0, 129=>2, 195=>4}
здесь 251 и 129 - user_id, а 0 и 2 - total_hours
Попробуй это:
TimeSheet.group(:user_id).sum(:total_hours)
В противном случае (для ActiveRecord :: Relation):
TimeSheet.select("user_id,SUM(total_hours) as total_hours").group(:user_id)
Вы можете использовать SUM
с Group
как показано ниже:
TimeSheet.select("user_id,SUM(total_hours) as total_hours").group(:user_id)