Bookshelf.js groupBy在多个列上



我正在构建一个使用Bookshelf访问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

有点晚,但请注意:您可以连续多次调用Knex的groupBy。因此:

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

使用此语法,而不是逐个单词重复多次。

.groupBy(['userID','YEARWEEK(startTime, 1)'])

最新更新