TOP

Hive 實現 IN 和 NOT IN 子句
2018-12-03 17:10:13 】 瀏覽:2005
Tags:

目前hive不支持 in或not in 中包含查詢子句的語法,所以只能通過left join實現。

假設有一個用戶瀏覽商品表skim,和一個用戶購買商品表buy。如下

skim表

userId itemId time
001 342 2015-05-08
002 382 2015-05-09
003 458 2015-05-09
004 468 2015-05-09

buy表

userId itemId time
001 342 2015-05-07
002 382 2015-05-08
003 458 2015-05-09
005 325 2015-05-09

select * from skim left outer join buy
on skim.userId = buy .userId and skim.itemId = buy .itemId
結果如下:

skim.userId skim.itemId skim.time buy.userId buy.itemId buy.time
001 342 2015-05-08 001 342 2015-05-08
002 382 2015-05-09 002 382 2015-05-09
003 458 2015-05-09 003 458 2015-05-09
004 468 2015-05-09

IN

如果要查詢在skim表中并且也在buy表中的信息,需要用in查詢优乐棋牌app下载,hive sql如下:

select skim.userId , skim.itemId from skim left outer join buy
on skim.userId = buy .userId and skim.itemId = buy .itemId where buy .userId is not null;

結果如下:

userId itemId
001 342
002 382
003 458

NOT IN

如果要查詢在skim表中并且不也在buy表中的信息优乐棋牌app下载,需要用not in查詢优乐棋牌app下载,hive sql如下:

select skim.userId, skim.itemId from skim left outer join buy
on skim.userId=buy .userId and skim.itemId=buy .itemId where buy .userId is null;

結果如下:

userId itemId
004 468

請關注公眾號獲取更多資料



】【打印繁體】【】【】 【】【】【】 【關閉】 【返回頂部
上一篇Hive 運算符與函數操作 下一篇hive 的條件判斷(if、coalesce、..