我有一个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算术运算符。
任何帮助将不胜感激!
答案 0 :(得分:2)
我查看了tests,this test似乎表达了类似的内容:
(sql/call :/ :foo 2)
所以我的猜测是(/ (sql/call :sum :Hotavg) 1000)
必须重写为(sql/call :/ (sql/call :sum :HotAvg) 1000)
。
使用sql/format
来测试您的查询是否正确。