Snowflake cloud data platform 在雪花上展平JSON数据
下面是我试图在snowflake上展平的Json数据 Json文档: } 在这些数据中,我有3名员工及其详细信息,如姓名、子女、居住城市 但其中一名员工安娜·卡列尼娜的子女详细信息不存在,但其他两名员工的子女数据存在 由于缺少儿童详细信息,我无法展平第三次emp数据 以下是我迄今为止所做的尝试: 雪花展平Json代码:Snowflake cloud data platform 在雪花上展平JSON数据,snowflake-cloud-data-platform,Snowflake Cloud Data Platform,下面是我试图在snowflake上展平的Json数据 Json文档: } 在这些数据中,我有3名员工及其详细信息,如姓名、子女、居住城市 但其中一名员工安娜·卡列尼娜的子女详细信息不存在,但其他两名员工的子女数据存在 由于缺少儿童详细信息,我无法展平第三次emp数据 以下是我迄今为止所做的尝试: 雪花展平Json代码: select empd.value:kind, empd.value:fullName, empd.value:age, empd.value:gender, --empd
select empd.value:kind,
empd.value:fullName,
empd.value:age,
empd.value:gender,
--empd.value:phoneNumber,
empd.value:phoneNumber.areaCode,
empd.value:phoneNumber.number ,
empd.value:children -- flattening childrean
//chldrn.value:name,
//chldrn.value:gender,
//chldrn.value:age,
//city.value:place,
//yr.value:yearsLived
from my_json emp , lateral flatten(input=>emp.Json_data:empDetails) empd ,
lateral flatten(input=>empd.value:children) chldrn,
//lateral flatten(input=>empd.value:citiesLived) city,
//lateral flatten(input=>city.value:yearsLived) yr
您需要使用外部开关:
如果为FALSE,则输出中将完全忽略任何无法展开的输入行,这些输入行可能是因为无法在路径中访问它们,也可能是因为它们没有字段或条目
如果为TRUE,则只为键、索引和值列中为NULL的零行扩展生成一行
我得到上一个列YearsLived列的空值
select empd.value:kind,
empd.value:fullName,
empd.value:age,
empd.value:gender,
--empd.value:phoneNumber,
empd.value:phoneNumber.areaCode,
empd.value:phoneNumber.number ,
empd.value:children -- flattening childrean
//chldrn.value:name,
//chldrn.value:gender,
//chldrn.value:age,
//city.value:place,
//yr.value:yearsLived
from my_json emp , lateral flatten(input=>emp.Json_data:empDetails) empd ,
lateral flatten(input=>empd.value:children) chldrn,
//lateral flatten(input=>empd.value:citiesLived) city,
//lateral flatten(input=>city.value:yearsLived) yr
OUTER => TRUE | FALSE
select empd.value:kind,
empd.value:fullName,
empd.value:age,
empd.value:gender,
empd.value:phoneNumber,
empd.value:phoneNumber.areaCode,
empd.value:phoneNumber.number ,
empd.value:children,
chldrn.value:name,
chldrn.value:gender,
chldrn.value:age,
city.value:place,
yr.value:yearsLived
from my_json emp,
lateral flatten(input=>emp.Json_data:empDetails) empd ,
lateral flatten(input=>empd.value:children, OUTER => TRUE) chldrn, -- <HERE>
lateral flatten(input=>empd.value:citiesLived) city,
lateral flatten(input=>city.value:yearsLived) yr