scala - Slick group by 与其他领域

标签 scala slick

select user_id, user_name,created_at, count(id) from message group by user_id order by created_at desc;

我想像这样编写 sql(mysql),如何使用 slick(不是普通的 sql)来实现。

最佳答案

Slick 尽可能模仿 Scala 的集合 API。想一想如何在 Scala 集合中做到这一点。

Messages.groupBy(_.userId).map{ case (userId,group) =>
    (userId, group.userName.max, group.createdAt.max, group.size)
}.orderBy(_.createdAt)

(目前没有 .head 从集合中获取单个元素。使用 .max 作为后备。)

要获取 Messages 对象,请参阅文档,例如http://slick.typesafe.com/doc/2.0.0/code-generation.html

关于scala - Slick group by 与其他领域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21260282/

相关文章:

java - SBT 包装显示出意外的行为

database - 使用 Play 2 和 Slick-Play 配置 Postgresql 连接

mysql - MySql 对 Slick Json 列的支持

scala - 带有几列的 scala slick 中的动态排序

security - 如何在 PlayFramework 2.1.x (Scala) 中实现 CSRF 保护?

scala - 为什么提供部分函数来映射在运行时抛出而不是给出编译错误?

mysql - Quill - INSERT INTO SELECT... 语法?

scala - Spark Scala Dataframe 如何使用两个或更多现有列创建新列

scala - Slick 缺少数据库类吗?

scala - 如何将列默认值设置为 Null? (光滑)