select "level" as level, explode(split('1,2,3',',')) as value;
可以生成結果
level value
level 1
level 2
level 3
lateral view:
1.lateral view 用於和udtf函式【explode,split】結合來使用。
2.首先通過udtf函式將資料拆分成多行,再將多行結果組合成乙個支援別名的虛擬表。
3…主要解決在select使用udtf做查詢的過程中查詢只能包含單個udtf,不能包含其它字段以及多個udtf的情況。
4.語法:lateral view udtf(expression) tablealias as columnalias (』,』 columnalias)
列轉行
hive> select *
from col_lie limit 10;ok
col_lie.user_id col_lie.order_id
104399
1715131
104399
2105395
104399
1758844
104399
981085
104399
2444143
104399
1458638
104399
968412
104400
1609001
104400
2986088
104400
1795054
select user_id,
concat_ws(
',',collect_list(order_id)
)as order_value
from col_lie
group by user_id
limit 10
;//結果(簡寫)
user_id order_value
104399
1715131
,2105395
,1758844
,981085
,2444143
總結
使用函式:concat_ws(』,』,collect_set(column))
說明:collect_list 不去重,collect_set 去重。 column的資料型別要求是string
LineDDA的乙個例子
unit unit1 inte ce uses windows,messages,sysutils,variants,classes,graphics,controls,forms,dialogs,extctrls,stdctrls,buttons type tfmmain class tform ...
SQL GROUP CONCAT的乙個例子
我有乙個這樣的資料庫 user info 現在有乙個需求是把這樣 9 條記錄按照 username 來 group 成3條記錄 目標 shu female 201 lee male 202 yuki female 181 如果用select from user info group by usern...
row number over簡單的乙個例子
declare t table id int,tac varchar 2 tbc varchar 2 insert into t select 001,a b union all select 001,c m union all select 001,a c union all select 002...