Как передать диапазон дат в предложении where в снежинке при написании запроса
Как передать диапазон дат в предложении where в снежинке при написании запроса и избежать дублирования также при следующем запуске. У меня есть запрос ниже, и мне нужно получать данные за 15 дней каждый день до предыдущего дня. Данные будут переданы в мою окончательную таблицу из приведенного ниже запроса. Мои окончательные данные не должны иметь повторяющихся строк для заданных всех столбцов.
Данные выглядят следующим образом:
{"location": "xyz", "metrics": [{"name": "traffic_in", "data": [{"group": {"start": "2020-07-05", "type": "date"}, "index": 0, "next_level": [{"index": 0, "validity": "complete", "value": 1, "group": {"finish": "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)
) ;
1 ответ
Обычный способ - поместить ваши данные в промежуточную таблицу с дополнительным столбцом с меткой времени, а затем использовать этот столбец с меткой времени для загрузки данных в конечную таблицу. Существуют и другие передовые способы сбора измененных данных и управления версиями строк таблицы, которые вы можете изучить и реализовать в соответствии с вашим вариантом использования. Вот ссылка.
https://docs.snowflake.com/en/user-guide/streams.html