我想这样做SELECT MAX(age), MIN(age) FROM users WHERE name = 'Rick'
。我提出的最好的内容涉及2个查询:Users.filter(_.name === 'Rick').map(_.age).max
答案 0 :(得分:6)
这是受支持的,但首先,您需要对其进行分组。由于您将整个集合视为一个组,因此按true
对其进行分组,并且在生成SQL时,它将忽略它:
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
你可能尝试的另一种方法是结合。