如何在同一查询中选择最大值,最小值
问题描述:
我想这样做SELECT MAX(age), MIN(age) FROM users WHERE name = 'Rick'
。最好的我提出了涉及2个查询:Users.filter(_.name === 'Rick').map(_.age).max
如何在同一查询中选择最大值,最小值
答
这是支持,但首先,你需要将它分组。
val q = Users.filter(_.name === 'Rick').groupBy { _ => true }.map {
case (_, group) =>
(group.map(_.age).max, group.map(_.age).min)
}
应该得到你是这样的::
q.selectStatement
# => select max(x2."age"), min(x2."age") from "Users" x2
另一种方法,因为你被true
和光滑处理整组为一组,组它生成SQL时将忽略它你可能会尝试成为一个联盟。