WITH DataInput AS 1 AS (SELECT
CONCAT(fqn, '_HealthIndex') AS fqn,
value as value,
count(value) as cntvalue
FROM DataInput
GROUP BY fqn,value,SlidingWindow(Duration( hour, 8 ))
),
CalcData AS
(SELECT
fqn,
count(*) as records,
sum(value) as alm,
100 - sum(case when cast(value as bigint)=19 and cast(cntvalue as bigint) > 1 then 5
when cast(value as bigint)=23 and cast(cntvalue as bigint) > 1 then 5
when cast(value as bigint)=64 and cast(cntvalue as bigint) > 1 then 10
when cast(value as bigint)=72 and cast(cntvalue as bigint) > 1 then 10
when cast(value as bigint)=77 and cast(cntvalue as bigint) > 0 then 5
when cast(value as bigint)=78 and cast(cntvalue as bigint) > 0 then 5
when cast(value as bigint)=83 and cast(cntvalue as bigint) > 16 then 5
when cast(value as bigint)=84 and cast(cntvalue as bigint) > 16 then 5
when cast(value as bigint)=91 and cast(cntvalue as bigint) > 0 then 30
when cast(value as bigint)=92 and cast(cntvalue as bigint) > 1 then 5
when cast(value as bigint)=101 and cast(cntvalue as bigint) > 1 then 15 else 0 end ) as value
,System.TimeStamp as t
from DataInput1 group by fqn,SlidingWindow(Duration( hour, 8 ))
)
任何关于CalcData为什么不只从DataInput获取输出的见解都将非常感激