如何在同一查询中选择最大值,最小值

如何在同一查询中选择最大值,最小值

问题描述:

我想这样做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时将忽略它你可能会尝试成为一个联盟。