概述
数据详情:
事实表:其中多个字段是字典code。
字典表:两列,字典code、字典value。
需求:
现在将事实表的字典code转换成字典value。
案例数据准备:
CREATE TABLE test_value (
id int,
k1 varchar(20) DEFAULT NULL,
k2 varchar(20) DEFAULT NULL,
k3 varchar(20) DEFAULT NULL
);
CREATE TABLE test_key_value (
ky varchar(20) DEFAULT NULL,
val varchar(20) DEFAULT NULL
);insert into test_value values (1,'a','b','c');
insert into test_value values (2,'d','e','f');
insert into test_value values (3,'g','h','i');insert into test_key_value values ('a','1');
insert into test_key_value values ('b','2');
insert into test_key_value values ('c','3');
insert into test_key_value values ('d','4');
insert into test_key_value values ('e','5');
insert into test_key_value values ('f','6');
insert into test_key_value values ('g','7');
insert into test_key_value values ('h','8');
insert into test_key_value values ('i','9');
实现逻辑:
select id
,max(case when k.k1= v.ky then v.val end) v1
,max(case when k.k2= v.ky then v.val end) v2
,max(case when k.k3= v.ky then v.val end) v3
from test_value k
left join test_key_value v
on (k.k1=v.ky or k.k2=v.ky or k.k3 = v.ky)
group by id
PS:原创博客,转载请注明出处。
最后
以上就是健忘红酒为你收集整理的【原创】hive/mysq 字典表多字段替换事实表多字段的全部内容,希望文章能够帮你解决【原创】hive/mysq 字典表多字段替换事实表多字段所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复