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)'])