光滑与其他领域组合

时间:2014-01-21 14:00:25

标签: scala slick

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

我想写这样的sql(mysql),如何用光滑(不是普通的sql)来做。

1 个答案:

答案 0 :(得分:4)

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