聚合sql函数上的querydatabasetable错误

5lwkijsr  于 2021-06-19  发布在  Mysql
关注(0)|答案(1)|浏览(370)

我想使用querydatabaserecord处理器对数据库表中的几个字段执行平均值。我的查询在mysql中运行良好,如下所示:

select TimeOfDay,
    AVG(BMU_Debug_Pack_Blk_Volt_Delta), 
    AVG(BMU_Debug_Pack_CTemp_Min) 
from tt8;

我所有的字段都是“double”类型,除了timeofday是“varchar(10)”。当我在字段上运行诸如avg/min等聚合函数时,会出现以下错误:

org.apache.nifi.processor.exception.ProcessException: 
Error during database query or conversion of records to Avro

编写sql查询的正确方法是什么?它允许我执行聚合函数。谢谢您!

chy5wohz

chy5wohz1#

Alias 当处理器以avro格式输出数据时,我们需要对聚集的列进行别名以获得avro模式。

select TimeOfDay,
        AVG(BMU_Debug_Pack_Blk_Volt_Delta) avg_BMU_Debug_Pack_Blk_Volt_Delta, 
        AVG(BMU_Debug_Pack_CTemp_Min) avg_BMU_Debug_Pack_CTemp_Min
 from tt8;

此外,如您所述,您可以在mysql端运行上述查询,而无需添加groupby子句,因此,如果不起作用,请将所有未聚合的列添加到 group by 子句并再次执行查询

select TimeOfDay,
            AVG(BMU_Debug_Pack_Blk_Volt_Delta) avg_BMU_Debug_Pack_Blk_Volt_Delta, 
            AVG(BMU_Debug_Pack_CTemp_Min) avg_BMU_Debug_Pack_CTemp_Min
        from tt8
group by TimeOfDay;

相关问题