我正在构建一个使用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)'])