select user_id, user_name,created_at, count(id) from message group by user_id order by created_at desc;
我想写这样的sql(mysql),如何用光滑(不是普通的sql)来做。
答案 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