配置单元脚本-如何根据一个列名转换表/查找某些记录的平均值



我想通过基于平均值的聚合来转换配置单元表。但是,我不想要整列的平均值,我想要该列中另一列中具有相同类型的记录的平均值。

这里有一个比试图解释更容易的例子:

表I:

时间戳 nbsp CounterName nbsp CounterValue nbsp 最大计数器值 nbsp 最小计数器值
00:00 nbsp nbsp nbsp nbsp nbsp 计数器1 nbsp nbsp nbsp nbsp nbsp 3 nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp 3 nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp 1
00:00 nbsp nbsp nbsp nbsp nbsp 计数器2 nbsp nbsp nbsp nbsp nbsp 4 nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp 5 nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp 2
00:00 nbsp nbsp nbsp nbsp nbsp 计数器3 nbsp nbsp nbsp nbsp nbsp 1 nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp 4 nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp 1.
00:00 nbsp nbsp nbsp nbsp nbsp nbsp;计数器4 nbsp nbsp nbsp nbsp nbsp 6 nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp 6 nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp 1
00:05 nbsp nbsp nbsp nbsp nbsp nbsp;计数器1 nbsp nbsp nbsp nbsp nbsp 3 nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp 5 nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp 2
00:05 nbsp nbsp nbsp nbsp nbsp nbsp;计数器2 nbsp nbsp nbsp nbsp nbsp 2 nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp 2 nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp 2
00:05 nbsp nbsp nbsp nbsp nbsp nbsp;计数器3 nbsp nbsp nbsp nbsp nbsp 4 nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp 5 nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp 4
00:05 nbsp nbsp nbsp nbsp nbsp nbsp;计数器4 nbsp nbsp nbsp nbsp nbsp 6 nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp 6 nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp 5
。。。。。。。

我想要的表格:
计数器名称 nbsp 平均计数器值 nbsp 最大计数器值 nbsp 最小计数器值
Counter1 nbsp nbsp nbsp nbsp nbsp 3 nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp 5 nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp 1
计数器2 nbsp nbsp nbsp nbsp nbsp nbsp;3 nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp 5 nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp 2
计数器3 nbsp nbsp nbsp nbsp nbsp nbsp;2.5 nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp;5 nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp 1
计数器4 nbsp nbsp nbsp nbsp nbsp nbsp;6 nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp 6 nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp 1

所以我有一个由一堆计数器组成的列表,每个计数器都有多个记录(每5分钟一个)。每次记录每个计数器时,它都有一个值,在这5分钟内有一个最大值,还有一个最小值。我想聚合这个巨大的表,使它每个计数器只有一条记录,记录表中所有记录中该计数器的总体平均值,然后记录表中计数器的总体最小值/最大值。

这之所以困难,是因为所有的文档都说如何通过一个表中一列的平均值进行聚合——我不知道如何将其分组。

这是我开始的脚本:

FROM HighCounters INSERT OVERWRITE TABLE MdsHighCounters
SELECT 
HighCounters.CounterName AS CounterName,
HighCounters.CounterValue AS CounterValue
HighCounters.MaxCounterValue AS MaxCounterValue,
HighCounters.MinCounterValue AS MinCounterValue
GROUP BY HighCounters.CounterName;

我不知道从那里去哪里。。。有什么想法吗?谢谢

我想我解决了自己的问题:

FROM HighCounters INSERT OVERWRITE TABLE MdsHighCounters SELECT HighCounters.CounterName AS CounterName, AVG(HighCounters.CounterValue) AS CounterValue, MAX(HighCounters.MaxCounterValue) AS MaxCounterValue, MIN(HighCounters.MinCounterValue) AS MinCounterValue GROUP BY HighCounters.CounterName;

你觉得这个对吗?

最新更新