【发布时间】:2014-09-18 05:25:29
【问题描述】:
sum-if 在 Korma 中如何工作?
这里是示例查询
SELECT SUM(if(items.quantities > 1, 1, 0)) AS multiples FROM items;
我让它与 Korma 提供的 raw-exec 一起工作。但是,我很想知道如何用 Korma 语法编写它。
【问题讨论】:
sum-if 在 Korma 中如何工作?
这里是示例查询
SELECT SUM(if(items.quantities > 1, 1, 0)) AS multiples FROM items;
我让它与 Korma 提供的 raw-exec 一起工作。但是,我很想知道如何用 Korma 语法编写它。
【问题讨论】:
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]}))
【讨论】:
我会使用这个:
(select items
(fields (raw "SUM(if(items.quantities > 1, 1, 0)) AS multiples"))
【讨论】: