【问题标题】:Bookshelf.js groupBy on multiple columnsBookshelf.js groupBy 多列
【发布时间】:2016-03-23 10:17:27
【问题描述】:

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

【问题讨论】:

  • 你有解决办法吗?
  • @TzookBarNoy 恐怕我从来没有这样做过 :(

标签: mysql bookshelf.js knex.js


【解决方案1】:

有点晚了,但记录一下:您可以连续多次拨打 Knex 的groupBy。所以:

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

【讨论】:

  • 你的回答现在有点老了,但它拯救了我的一天。链接 groupBy 实际上有效,而逗号分隔的列名则无效。我将 knex 与 mysql 一起使用,但它也可能适用于 bookshelf.js。非常感谢!
猜你喜欢
  • 2017-05-19
  • 2021-02-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-27
相关资源
最近更新 更多