Slick Group通过汇总多个列

问题描述 投票:0回答:1

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

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

谢谢!

scala slick
1个回答
0
投票

正如@Duelist所说的,他的查询在groupBy中丢失name ...从那里开始,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

Disclaimer:我假设您在3的更高版本中使用Slick。>

© www.soinside.com 2019 - 2024. All rights reserved.