問題描述:事實表儲存的類目id不確定是幾級id;一共有**類目,需要把類目資訊維護進事實表,比如記錄的是二級類目id,需要把一級類目資料維護進事實表。
一開始沒有想到怎麼搞,還是想了一會兒想了這麼個處理方法:
ods_classify原始業務庫表,id就是各級的類目id,pid就是上一層級的類目id,dim_classify是事先處理好的一二**類目表
select t1.id
,t4.third_id
,t4.third_title
,case when t4.sencond_id is not null then t4.sencond_id
else t3.sencond_id end as sencond_id
,case when t4.sencond_title is not null then t4.sencond_title
else t3.sencond_title end as sencond_title
,case when t4.first_id is not null then t4.first_id
when t3.first_id is not null then t3.first_id
else t2.first_id end as first_id
,case when t4.first_title is not null then t4.first_title
when t3.first_title is not null then t3.first_title
else t2.first_title end as first_title
from (
select id
from ods_classify
) t1 left
join (
select first_id
,first_title
from dim_classify
group by first_id
,first_title
) t2
on t1.id = t2.first_id left
join (
select sencond_id
,sencond_title
,first_id
,first_title
from dim_classify
group by sencond_id
,sencond_title
,first_id
,first_title
) t3
on t1.id = t3.sencond_id left
join (
select third_id
,third_title
,sencond_id
,sencond_title
,first_id
,first_title
from dim_classify
group by third_id
,third_title
,sencond_id
,sencond_title
,first_id
,first_title
) t4
on t1.id = t4.third_id
;
hive與hbase關聯表
關於 hbase 和 hive 關聯表 詳細介紹 hive 建立 關聯hbase表有2種形式 這種情況是hbase本來沒有這張表。hive建表時建立了hbase表.這種情況下,hdfs的hive表目錄有hive資料夾,但是裡面沒有資料 資料時存在hbase裡面的 hive insert overwr...
一維表轉二維表(mysql)
例子資料 drop table ifexists tmp0103.temp test create table tmp0103.temp test id int 11 not null auto increment,class varchar 255 default null,score doubl...
一維表轉換成二維表
晚上回到宿舍,舍友問起我今天他們筆試的乙個題目 如何把乙個一維表轉換成二維表 sql查詢該如何寫呢?一維表table a如下 年級 課目 人數 2001 語文 20 2001 數學 15 2002 語文 20 2002 數學 15 2003 語文 20 2003 數學 15 如何轉換成如下格式的二維...