Как группировать и суммировать строки расписания

0

У меня есть модель расписания, которая выглядит так:

timesheet
-id
-total_hours
-user_id
-date

Теперь я хочу создать отчет, который выглядит так:

user_id   total_hours

(У меня будет предложение where, которое будет выбирать строки для заданного диапазона дат, но эту часть я понимаю).

Является ли этот запрос я могу использовать activerecord для или должен ли я просто использовать psql для этого и использовать raw sql?

Теги:
activerecord

3 ответа

0

Попробуйте следующее:

TimeSheet.group(:user_id).sum(:total_hours)

0

Если требуется, введите хэш-формат, например

{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)
0

Вы можете использовать SUM с Group как показано ниже:

TimeSheet.select("user_id,SUM(total_hours) as total_hours").group(:user_id)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню