gpt4 book ai didi

sql - 光滑的条件和(scala)

转载 作者:行者123 更新时间:2023-12-01 14:02:59 25 4
gpt4 key购买 nike

我正在尝试将以下 SQL 重写为 slick:

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)
}

但是我得到了以下错误:

多态表达式无法实例化为预期的类型;
发现:[R]slick.lifted.Rep[R]
必需: bool 值

我也尝试过使用filterlength,但没有成功。我怎样才能实现我的目标?

最佳答案

Slick 已经为此提供了解决方案(documentation):

items.groupBy(r => r.id).map {
case (id, group) => (id, group.map { r =>
Case If r.spend > BigDecimal(0.0) Then 1 Else 0
}.sum)
}

关于sql - 光滑的条件和(scala),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33423342/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com