1

sum-if 如何在 Korma 中工作?

这是示例查询

SELECT SUM(if(items.quantities > 1, 1, 0)) AS multiples FROM items;

我让它与 Korma 提供的 raw-exec 一起工作。但是,我有兴趣知道如何用 Korma 语法编写它。

我试过查看http://sqlkorma.com/docs#select

4

2 回答 2

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]}))
于 2014-09-16T22:26:14.583 回答
0

我会用这个:

(select items
        (fields (raw "SUM(if(items.quantities > 1, 1, 0)) AS multiples"))
于 2014-09-17T21:25:29.280 回答