Я пытаюсь переписать следующий SQL в пятне:Условная сумма в гладком (Скале)
SELECT id
SUM(
if (spend > 0, 1, 0)
)
FROM items
GROUP by id
Мой текущий код выглядит примерно так:
items.groupBy(r => r.id).map {
case (id, group) => (id, group.map { r => if (r.spend > 0) 1 else 0 }.sum)
}
Но я получил следующее сообщение об ошибке:
polymorphic expression cannot be instantiated to expected type; found : [R]slick.lifted.Rep[R] required: Boolean
Я также попытался использовать filter
и length
, но без успеха. Как я могу достичь своей цели?
Запрос, конечно, может быть упрощен, но на самом деле мой реальный запрос намного сложнее с несколькими объединениями. Второе решение может быть полезно, я попробую. –
Хорошо, я понял: 'Случай Если r.spend> BigDecimal (0.0) Тогда 1 Осталось 0' –
@Peter Krejci круто. Это стоит того, чтобы ответить. – Odomontois