表/类型结构:
Create type typ_pks_details(
tpks_value Text,
tpks_date Text,
tpks_comp_flg Text
);
Create Table pk_summary (
pks_nbr_key text,
pks_type_value text,
pks_type_character text,
pks_details map<text, frozen<typ_pks_details>>,
PRIMARY KEY (pks_nbr_key,pks_type_val)
);
功能/骨料:
Create FUNCTION sfunc_compute_value (state map<Text,Text>
,ps_type_val Text
,ps_type_char Text
,pm_pks_details map<text, frozen<typ_pks_details>>)
CALLED ON NULL INPUT
RETURNS map<Text,Text>
LANGUAGE java
AS '
......<<Other code goes here>>
//Clarification 2
//How to traverse typ_pks_details to fetch data
return state;';
Create AGGREGATE compute_value
(Text
,Text
,map<text, frozen<typ_attr_dtls>>
//Clarification 1
//How to pass map column pk_summary.pks_details map
)
SFUNC sfunc_compute_value
STYPE map<Text,Text>
INITCOND {}
;
查询:
Select compute_value(pks_type_value,pks_type_character,pks_details) As
Summary
From pk_summary
Where pks_nbr_key='100' Allow Filtering;
问题:
要求在查询中传递用户定义的列(pks_details)(上面的snipet 中的 Clarifcation 1)以聚合/函数并计算值(上面的snipet中的 Clarifcation 2 )。 请注意,上面已经解释了该场景,而不是显示原始表格。