From 9c030f69707a7bcb83addc096d7ae48315f68078 Mon Sep 17 00:00:00 2001 From: TsMask <340112800@qq.com> Date: Thu, 4 Jan 2024 15:55:40 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E9=BB=84=E9=87=91=E6=8C=87=E6=A0=87kpi?= =?UTF-8?q?=E4=B8=AA=E5=88=AB=E5=AD=97=E6=AE=B5=E7=BB=9F=E8=AE=A1=E5=8F=AA?= =?UTF-8?q?=E5=8F=96=E6=9C=80=E5=90=8E=E4=B8=80=E6=AC=A1=E6=94=B6=E5=88=B0?= =?UTF-8?q?=E7=9A=84=E9=9D=9E0=E5=80=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../network_element/repository/perf_kpi.impl.go | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/modules/network_element/repository/perf_kpi.impl.go b/src/modules/network_element/repository/perf_kpi.impl.go index e6aaddeb..0b13abab 100644 --- a/src/modules/network_element/repository/perf_kpi.impl.go +++ b/src/modules/network_element/repository/perf_kpi.impl.go @@ -52,8 +52,14 @@ func (r *PerfKPIImpl) SelectGoldKPI(query model.GoldKPIQuery, kpiIds []string) [ "min(CASE WHEN gk.ne_name != '' THEN gk.ne_name ELSE 0 END) AS neName", } for _, kid := range kpiIds { - str := fmt.Sprintf("sum(CASE WHEN gk.kpi_id = '%s' THEN gk.value ELSE 0 END) AS '%s'", kid, kid) - fields = append(fields, str) + // 特殊字段,只取最后一次收到的非0值 + if kid == "AMF.01" || kid == "UDM.01" || kid == "UDM.02" || kid == "UDM.03" { + str := fmt.Sprintf("IFNULL(SUBSTRING_INDEX(GROUP_CONCAT( CASE WHEN gk.kpi_id = '%s' and gk.VALUE != 0 THEN gk.VALUE END ), ',', 1), 0) AS '%s'", kid, kid) + fields = append(fields, str) + } else { + str := fmt.Sprintf("sum(CASE WHEN gk.kpi_id = '%s' THEN gk.value ELSE 0 END) AS '%s'", kid, kid) + fields = append(fields, str) + } } fieldsSql := strings.Join(fields, ",")