slick

2014-11-20 30 views
5

SELECT MAX(age), MIN(age) FROM users WHERE name = 'Rick' Bunu yapmak istiyorum. Geldiğim en iyi 2 sorgu içeriyor: Users.filter(_.name === 'Rick').map(_.age).maxslick

cevap

3

Bu destekleniyor, ancak önce gruplandırmanız gerekecek. Böyle bir şey vermelidir

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 

başka bir yaklaşım Eğer true ve kaygan bir grup olarak tüm seti, grup onu tedavi ediyoruz yana SQL oluştururken bunu göz ardı edecektir Bir birlik olabilirsiniz.