无论如何在honysql select组件中使用SQL算术运算符?

时间:2016-08-02 07:44:16

标签: mysql clojure honeysql

我有一个SQL段SELECT DataTime, ROUND(SUM(Hotavg)/1000,0),目的很明确。我用honeysql方式(h/select :DataTime [(sql/call :round (/ (sql/call :sum :Hotavg) 1000) 0) :Hotavg])编写它们但它不起作用。我收到错误消息

  

honeysql.types.SqlCall无法强制转换为java.lang.Number

我想知道无论如何在honysql select组件中使用SQL算术运算符?

我知道我可以通过执行原始sql来完成我的任务,或者在逻辑代码中执行算术运算。但我的目的是找出honeysql是否支持SQL算术运算符。

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:2)

我查看了teststhis test似乎表达了类似的内容:

(sql/call :/ :foo 2)

所以我的猜测是(/ (sql/call :sum :Hotavg) 1000)必须重写为(sql/call :/ (sql/call :sum :HotAvg) 1000)

使用sql/format来测试您的查询是否正确。