我有一个相当长的查询,查看过去13周,并确定当天的表现与过去13周相比是否异常。它只是返回一个包含日期,当天表现以及标志表示是否异常的单行。让事情更复杂一点:表现不仅仅是一天,而是一个24小时运行的窗口。然后每隔一小时运行一次此查询以监视过去24小时内的KPI。即如果是星期二下午2点,它将从前一天(星期一)的下午2点开始到现在,并且在过去的13周内将其与下午2点到下午2点相比较。模拟一系列日期的查询
要测试此代码是否正常工作,我想模拟它在过去一个月内运行。
的代码去如下:
WITH performance AS(
SELECT TRUNC(dateColumn - to_number(to_char(sysdate, 'hh24')/24) as startdate,
KPI_a,
KPI_b,
KPI_c
FROM table
WHERE someConditions
GROUP BY TRUNC(dateColumn - to_number(to_char(sysdate, 'hh24')/24)),
compare_t AS(
-- looks at relationships of the KPIs),
variables AS(
-- calculates the variables required for the anomaly detection),
...好,我不知道需要多查询的多给予,但它基本上是我需要模拟“SYSDATE”。而不是输入当前日期,输入上个月的每个小时,以便此查询将运行约720次,并返回结果720次,每天每个小时。
我在想FOR循环,但我不确定。
您认为什么是“异常”KPI值? –
@ WernfriedDomscheit它是根据以前的表现计算的门限 –
720小时给出30天 - 而不是13周。我没有得到关系。 –