Grails 如何使用集合的groupBy()函数

Grails 如何使用集合的groupBy()函数,grails,Grails,我在查询中返回了一些数据,包括userid、name、week、days和project\u count。 i、 e: 一年中的每一周 数据是每个用户每周每天预定的时间 我正在尝试使用groupby,因此它将按名称对这些信息进行分组,并将周和天添加到该组中 i、 e: 然后,我将使用这些数据创建一个表来显示信息。按用户和周列出 名称Wk1 Wk2 Wk3 Wk4 Wk5 Wk6 Wk7 柯克4.75 3 5 没有显示id,我只是认为这有助于对数据进行分组。 如果值大于1,则在生成表格以突出显示单

我在查询中返回了一些数据,包括userid、name、week、days和project\u count。 i、 e:

一年中的每一周

数据是每个用户每周每天预定的时间

我正在尝试使用groupby,因此它将按名称对这些信息进行分组,并将周和天添加到该组中 i、 e:

然后,我将使用这些数据创建一个表来显示信息。按用户和周列出

名称Wk1 Wk2 Wk3 Wk4 Wk5 Wk6 Wk7 柯克4.75 3 5 没有显示id,我只是认为这有助于对数据进行分组。 如果值大于1,则在生成表格以突出显示单元格背景时,将使用“项目计数”字段。我试图发布一张图片,让大家更好地了解我在做什么,但我还没有足够的声誉


如果没有groupBy,我会这么做:

def groupped = data.inject( [:].withDefault{ [] } ){ res, record ->
  //         id         name               week           days
  res[ [ record[ 0 ], record[ 1 ] ] ] << [ record[ 2 ], record[ 3 ] ]
  res
}

感谢您的快速重播,但这似乎给了我与select语句相同的分组。您迭代分组映射的代码毫无意义。如果你清楚地描述你想要的东西,而忽略不相关的细节,那就更好了。例如,sql操作与您所处的分组无关,我将尝试注入。有关于这方面的文件我可以阅读吗?当您的新用户访问Grails时,很难破译这一行。您好,我再次尝试了这段代码,它返回的数据与您所说的一样,只是没有为每个新用户创建一个新的“行”,而是简单地将其添加到末尾。此外,它还不断重复这一线路。例如,这样的公司也不断重复这一线路。例如:[[14,柯克[14,柯克[14,柯克]:[1,4.4.74],[2,3[2,3[15,毕卡德[15,毕卡德]:[15,毕卡德[15,毕卡德[15,毕卡德],[15,毕卡德[15,毕卡德],[15,毕卡德]:[15,毕卡德[15,毕卡德]:[15,毕卡德[1,15,毕卡德]:[1,1,1,1,1,3,(1,3,(1,3,(1,3,(1,3,(1,5],[1,5],[1,5],[1,5],[1,5],[1,5],[1,5],[1,5],[2,5],[2,5],[2,5],[我在找[14,柯克]:[1,4.74],[2,3],[3,5]]][15,Picard]:[1,3],[2,5],[3,2.25],[4,1.5],[17,Sisko]:[1,1],[2,4.25],[3,4],[4,3]]你可以做一些编辑,让人们更好地了解你想要什么,例如删除项目的计数位,因为它没有被使用,还可以说输出中Wk1 Wk2下面的数字实际上意味着它们似乎是每周的天数,但是格式搞砸了?。
[14, kirk[1,4.74],[2,3],[3,5]]
def groupped = data.inject( [:].withDefault{ [] } ){ res, record ->
  //         id         name               week           days
  res[ [ record[ 0 ], record[ 1 ] ] ] << [ record[ 2 ], record[ 3 ] ]
  res
}
[
  [ 14, kirk ]:[ [1,4.74],[2,3],[3,5] ] 
]