explode的乙個例子

2021-10-05 22:20:53 字數 1278 閱讀 1141

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...