Slick Group通过聚合多个列

时间:2019-11-29 10:06:53

标签: scala slick

如何在Slick + Scala中执行以下SQL查询,您能帮我吗?

SELECT MAX(ID) AS ID, MAX(CREATED_AT) AS CREATED_AT, NAME, EMAIL
FROM USERS
GROUP BY EMAIL

谢谢!

1 个答案:

答案 0 :(得分:1)

正如@Duelist所说,他的查询在groupBy中缺少名称 ... ...从那里开始,Slick中的查询将像这样:

Users.groupBy(u => (u.name, u.email))
    .map { case ((name, email), group) => (group.map(_.id).max, group.map(_.createAt).max, name, email) }
    .result

您可以在此处找到有关转换groupBy和其他内容的更好解释:GROUPBY

免责声明:我假设您在3以后的版本中使用Slick