构建一个字典,根据不同的Tag选择不同聚合函数,结合自定义聚合函数,可以实现。脚本入下:
N = 9 t = table("code" + string(take(1..3, N)) as tag, sort(take([2021.06.28T00:00:00, 2021.06.28T00:10:00, 2021.06.28T00:20:00], N)) as time, take([1.0, 2.0, 9.1, 2.0, 3.0, 9.1, 9.1, 2.0, 3.0], N) as value) codes = dict(`code1`code2`code3, [max, min, avg]) defg func(tag, value, codes) { fd = codes[tag.first()] return call(fd, value) } t_tmp = select func(tag, value, codes) as value from t group by tag, interval(time, 10m, "null") as time select value from t_tmp pivot by time, tag