tdengine中聚合函数错误问题 返回

SqlSugar 沟通中
7 197

在源码中测试,使用SqlFunc先求平均数再四舍五入,出错

image.pngimage.png

var list4 = db.Queryable<CodeFirst0311>().Select(t => new { avg_value = SqlFunc.Round(SqlFunc.AggregateAvg(t.Double), 2) }).First();

报错TDengine.Driver.TDengineError:“code:[0x2802],error:Invalid parameter data type : round”

控制台生成的sql

[Sql]:SELECT  ROUND(AVG(`double`),@MethodConst1) AS `avg_value`  FROM `codefirst0311`    ORDER BY NOW()  LIMIT 1 offset 0
[Pars]:
[Name]:@MethodConst0 [Value]:2 [Type]:Int32
[Name]:@MethodConst1 [Value]:2 [Type]:Int32

直接使用sql查询是可以正常返回的

SELECT  ROUND(AVG(`double`),2) AS `avg_value`  FROM `test`.`codefirst0311`    ORDER BY NOW()  LIMIT 1 offset 0;


热忱回答7

  • 我这边看一下

    0 回复
  • 我这边看一下

    0 回复
  •  db.Ado.GetString("SELECT  ROUND(AVG(`decimal`), 2) AS `xx`  FROM `codefirst0311`    ORDER BY NOW()  LIMIT 1 offset 0");

    我用代码也是报错的。

    0 回复
  • TDengine.Driver.TDengineError:“code:[0x2801],error:Invalid number of parameters : round”

    0 回复
  • 可能和驱动有关系

    0 回复
  • image.png

    如图,我使用你的这个方法,在master分支上的代码直接测试,是可以正常返回数据的

    我用的TdEngine版本是 3.3.3.0 社区版

    0 回复
  • image.png

    不知道是不是这里生成的参数数量不对影响了呢?只有一个2,下面生成了两个,第一个却没有使用

    0 回复