Mysql Clojure+;Korma-带IF条件的求和聚合查询

Mysql Clojure+;Korma-带IF条件的求和聚合查询,mysql,clojure,korma,Mysql,Clojure,Korma,sum if在科尔马如何工作 下面是示例查询 SELECT SUM(if(items.quantities > 1, 1, 0)) AS multiples FROM items; 我用Korma提供的raw exec得到了这个。但是,我很想知道如何用Korma语法编写这个 如果是一个特定于供应商的功能,我已经尝试查看了,因此我怀疑它是否会得到支持 您可能更幸运地将查询转换为与供应商无关的内容,并使用它 此查询: SELECT SUM(if(items.quantities > 1

sum if在科尔马如何工作

下面是示例查询

SELECT SUM(if(items.quantities > 1, 1, 0)) AS multiples FROM items;
我用Korma提供的raw exec得到了这个。但是,我很想知道如何用Korma语法编写这个


如果是一个特定于供应商的功能,我已经尝试查看了

,因此我怀疑它是否会得到支持

您可能更幸运地将查询转换为与供应商无关的内容,并使用它

此查询:

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]}))
我会用这个:

(select items
        (fields (raw "SUM(if(items.quantities > 1, 1, 0)) AS multiples"))