日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Hive的union和join操作

發布時間:2025/3/21 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Hive的union和join操作 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

建表語句:

create table ?tb_in_base ( id ?bigint, devid bigint, devname string? ) partitioned by (job_time bigint) row format delimited fields terminated by ','; create table ?tb_in_up ( id ?bigint, devid bigint, devname string? ) partitioned by (job_time bigint) row format delimited fields terminated by ','; 場景一:單表子查詢沒有指定表別名 語句:select * from (select id,devid,job_time from tb_in_base) ;

執行過程:

?

提示需要指定子查詢源。 加上表別名: 語句:select * from (select id,devid,job_time from tb_in_base) a; 執行過程:

?

?

加了表別名后可以正常輸出子查詢中的數據。 結果分析:在hive中若有子查詢必須指定子查詢的表別名 場景二:單表查詢外圍字段比子查詢少一個 語句:?select id,devid from (select id,devid,job_time from tb_in_base) a;? 執行過程:

?

?

結果分析:輸出外圍指定字段的數據 。 場景三:兩張表進行union all 語句: select a.id,a.devid from (select a.id,a.devid,a.job_time from tb_in_base a union all select b.id,b.devid,b.job_time from tb_in_up b) a; 執行過程:

?

?

結果分析:兩張表進行union all 取相同的字段名稱,可正常輸出指定數據內容,且結果為兩張表的結果集 場景四:兩張表進行union? 語句: select a.id,a.devid from (select a.id,a.devid,a.job_time from tb_in_base a union all select b.id,b.devid,b.job_time from tb_in_up b) a; 執行過程:

?

結果分析:hive 不支持union?

?

場景五:外圍使用count、sum 統計id? 語句: select count(a.id),sum(a.id) ?from (select a.id,a.devid,a.job_time from tb_in_base a union all select b.id,b.devid,b.job_time from tb_in_up b) a; 執行過程:

?

?

結果分析:兩表直接進行union all 可以使用count、sum 等聚合函數? 場景六:union all 時使用count、sum 、max等 聚合函數

結果分析:union all 時不能使用count、sum 、max等 聚合函數,單表可以進行聚合函數使用,如下圖

?

?

場景七:left join 是否可以使用max、count、sum 等函數? 語句: select max(a.id),min(b.id),sum(a.job_time),count(a.id) from tb_in_base a join tb_in_up b on (a.id=b.id); 執行過程:

?

?

結果分析:在left join 中可以使用max、count等聚合函數。 總結分析 1.?子查詢相當于表名,使用 from 關鍵字需要指定真實表名或表別名。 2. hive 不支持union ,只支持union all? 3. 子查詢中使用union all 時,在子查詢里不能使用count、sum 等 聚合函數? 4.?兩表直接進行union all 可以使用count、sum 等聚合函數? 5.?兩張表進行union all 取相同的字段名稱,可正常輸出指定數據內容,且結果為兩張表的結果集

轉載于:https://www.cnblogs.com/peizhe123/p/9870770.html

總結

以上是生活随笔為你收集整理的Hive的union和join操作的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。