sum-if如何在Korma中工作?
以下是示例查询
SELECT SUM(if(items.quantities > 1, 1, 0)) AS multiples FROM items;
我让这个与Korma提供的raw-exec一起工作。但是,我有兴趣知道如何用Korma语法编写它。
答案 0 :(得分:1)
IF
是特定于供应商的功能,因此我怀疑它是否会受到支持。
您可能有更好的运气将您的查询转换为供应商中立的东西,而不是使用它。
此查询:
SELECT SUM(if(items.quantities > 1, 1, 0)) AS multiples FROM items;
相当于以下一个:
SELECT count(*) AS multiples FROM items WHERE quantities > 1;
转换为以下korma表达式:
(select items
(aggregate (count :*) :multiples)
(where {:quantities [> 1]}))
答案 1 :(得分:0)
我会用这个:
(select items
(fields (raw "SUM(if(items.quantities > 1, 1, 0)) AS multiples"))