def groupBy[K, T, G, P](f: E => K)(implicit kshape: Shape[_ <: FlatShapeLevel, K, T, G], vshape: Shape[_ <: FlatShapeLevel, E, _, P]): Query[(G, Query[P, U, Seq]), (T, Query[P, U, Seq]), C] = {
val sym = new AnonSymbol
val key = ShapedValue(f(shaped.encodeRef(Ref(sym)).value), kshape).packedValue
val value = ShapedValue(pack.to[Seq], RepShape[FlatShapeLevel, Query[P, U, Seq], Query[P, U, Seq]])
val group = GroupBy(sym, toNode, key.toNode)
new WrappingQuery[(G, Query[P, U, Seq]), (T, Query[P, U, Seq]), C](group, key.zip(value))
}
docsは、
Coming from SQL to Slick — Slick 3.0.0 documentation