Bookshelf.js groupBy на нескольких столбцах

Я строю программу, которая использует Книжную полку для доступа к базе данных MySQL. Я пытаюсь сгруппировать данные по двум столбцам. Но я не могу понять, как это сделать.

Я пытался использовать knex groupByRaw и lodash _.groupBy, но я не думаю, что использую их в нужном месте.

Вот ситуация:

Таблица

Я храню таймеры в таблице со следующими столбцами: id, userID, projectID, startTime, stopTime.

Я хочу выбрать накопительное время для каждого пользователя в данной календарной неделе.

Я предполагаю, что результирующий запрос будет выглядеть примерно так:

SELECT SUM(TIMESTAMPDIFF(SECOND, startTime, endTime)), userID, YEARWEEK(startTime, 1), projectID FROM time GROUP BY userID, YEARWEEK(startTime, 1) HAVING projectID = 1

2 ответа

Немного поздно, но для протокола: вы можете позвонить в Knex groupByнесколько раз подряд. Так:

  .groupBy("userID")
  .groupByRaw("YEARWEEK(startTime, 1)")

Используйте этот синтаксис вместо многократного повторения групповых слов.

      .groupBy(['userID','YEARWEEK(startTime, 1)'])
Другие вопросы по тегам