如何在编写查询时在雪花中的 where 子句中传递日期范围并避免下一次运行重复。我有以下查询,我必须每天获取 15 天的数据,直到前一天。数据将从下面给出的查询传递到我的最终表。对于给定的所有列,我的最终数据不应该有重复的行。
数据如下所示:
{“位置”:“xyz”,“指标”:[{“名称”:“traffic_in”,“数据”:[{“组”:{“开始”:“2020-07-05”,“类型”: “日期”},“索引”:0,“下一个级别”:[ {“索引”:0,“有效性”:“完成”,“值”:1,“组”:{“完成”:“00:15 ", "开始": "00:00", "类型": "时间" } } ] } ], } ], }
以下是需要根据要求修改的查询:
create or replace TABLE TMP_RN_TC as
(select * from(
select distinct
replace(D_NEXT : location , '"' , '')as rn_loc_id,
mtr.value:name::VARCHAR as metrics_name,
dta.value:group.start::DATE as metrics_event_date,
dta.value:index::numeric as metrics_date_index,
nxt.value:validity::VARCHAR as metrics_data_validity,
nxt.value:value::numeric as metrics_data_value,
nxt.value:group.start::time as metrics_data_start_tms,
nxt.value:index::numeric as metrics_time_index
from STG_RN_TC stg,
lateral flatten(input => stg.D_NEXT:metrics) mtr,
lateral flatten(input => mtr.value:data) dta,
lateral flatten(input => dta.value:next_level)nxt)
) ;