自定义汇总功能汇总

问题描述

我想在汇总表期间在列上计算统计模式。 我尝试的CalculateMode函数是:

.create function CalculateMode(Action:int,Asset:string,Start:long,End:long) {
Event
    | where Time between (Start .. End) and IdAction == Action and IdDevice == Device
    | summarize Count = countif(isnotnull(Result) and isnotempty(Result)) by tostring(Result)
    | top 1 by Count desc
    | project ActionResult
}

OR

.create function CalculateMode(T:(data:dynamic)) {
T
    | summarize Count = countif(isnotnull(data) and isnotempty(data)) by tostring(data)
    | top 1 by Count desc
    | project data
}

当我在汇总中使用第一个编码时:

Event
    | summarize Result = CalculateMode(toint(IdAction),tostring(IdDevice),Start,End) by Category

获取错误未找到表格表达式语句, 当我在总结中使用第二种编码时:

Event
    | summarize Result = CalculateMode(Result) by Category

获取错误 CalculateMode():参数#1必须为表格表达式

我该怎么办? 我哪里错了? 谢谢

解决方法

您不能只做summarize Result = CalculateMode(Result)。您必须决定要使用哪种聚合函数summarize(请参见聚合函数here的完整列表)。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...