[函數]Hive "行轉列"和"列轉行"

Hive "行轉列"和"列轉行" - lixiaotaoplus的專欄 - 博客頻道 - CSDN.NET http://blog.csdn.net/lixiaotaoplus/article/details/43916549

Hive實際開發(fā)過程中,我們會遇到“行轉列”和“列轉行”的場景。比如:
1、 需要取“訂單號”對應的所有商品“SKU號”,商品“sku號”放在一列,即從table1查詢出table2;
2、 當商品“sku號”均在一列的時候,需要查詢每個“sku號”對應的“訂單號”,即從table2查詢出table1。

實現方法:
1、從table1查詢出table2:
SELECT
sale_ord_id
,concat_ws(',',collect_set(item_sku_id))as item_sku_id
FROM table1
WHERE dt=sysdate(-1)
GROUP BY sale_ord_id
關鍵點:使用到****concat_ws()和collect_set()
2、從table2查詢出table1:
SELECT
sale_ord_id
,sku_id
FROM table2
LATERAL VIEW explode(split(item_sku_id,',')) adTable AS sku_id
WHERE dt=sysdate(-1)
關鍵點:使用到****explode()、split()和LATERAL VIEW
以上小結知識點,大家或許也使用到過,這里整理出來,僅供參考和靈活使用。如果有任何疑問歡迎與我取得聯系,謝謝。
From:My E-mail share,數據開發(fā)HIVE-SQL案例分享,2014/11/3 (周一) 22:27

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容