【发布时间】:2019-08-12 09:09:25
【问题描述】:
这是我的蜂巢桌:
dept_id emp_cnt emp_cnt_prev_yr sales_cnt sales_cnt_prev_yr
1 10 8 10000 5000
2 15 9 20000 12000
3 12 10 30000 15000
4 6 12 40000 20000
我想将数据存储到另一个配置单元表中,如下所示:
dept_id metric_nm metric_val metric_val_prev-yr
1 emp_cnt 10 8
2 emp_cnt 15 9
3 emp_cnt 12 10
4 emp_cnt 6 12
1 sales_cnt 10000 5000
2 sales_cnt 20000 12000
3 sales_cnt 30000 15000
4 sales_cnt 40000 20000
到目前为止我尝试了什么:
SELECT dept_id,
metric_nm,
Substr(metrics,1,Locate('#',metrics,1)-1) AS metric_val,
Substr(metrics,Locate('#',metrics,1)+1) AS metric_val_prev_yr
FROM (
SELECT dept_id,
Map('emp_cnt', Concat(emp_cnt,'#',emp_cnt_prev_yr),'sales_cnt', Concat(sales_cnt,'#',sales_cnt_prev_yr)) AS metrc
FROM <TABLE>) a lateral VIEW explode(metric) ext AS metric_nm,
metrics;
【问题讨论】:
-
欢迎来到 SO!到目前为止你尝试了什么?请相应地编辑您的问题。
-
SELECT dept_id,metric_nm, SUBSTR(metrics,1,locate('#',metrics,1)-1) as metric_val, SUBSTR(metrics,locate('#',metrics,1)+ 1) as metric_val_prev_yr from (select dept_id, MAP('emp_cnt', CONCAT(emp_cnt,'#',emp_cnt_prev_yr),'sales_cnt', CONCAT(sales_cnt,'#',sales_cnt_prev_yr)) as metrc from
) a LATERAL VIEW EXPLODE(metric) ext AS metric_nm, metrics;