問題描述:有兩張表,都有user_id,一張是所有的用戶表t1,另一張表示部分用戶表t2,我想建立一張臨時表
CREATE MULTISET TABLE 表
AS(
SEL T1.**
, t2.**
, case when
FROM T1
left join t2
on t1.user_id = t3.user_id
WHERE DEAL_DATE between cast('20170701' as date format 'YYYYMMDD') and cast('$TX_DATE' as date format 'YYYYMMDD')
)WITH DATA PRIMARY INDEX(USER_ID);
我在這個臨時表進行casewhen 判斷 實作 我在取這表的資料時 通過限制條件就可以選擇取t1的用戶 還是 t2的用戶 這里的 case when 不知道怎么寫。
uj5u.com熱心網友回復:
也在自學HIVE,表示為啥不先把資料處理了以后再用CASE WHEN呢?不知道說的對不對哈uj5u.com熱心網友回復:
不先把資料處理了以后再用CASE WHEN呢?不知道說的對不對哈說錯了,是先把熟路case when了然后關聯一下你處理的結果資料
uj5u.com熱心網友回復:
先進行資料處理,left join 里面的資料要么是交集,要么就是t1交集之外的資料,你只能區分這兩部分的資料,使用case判斷t2.user_id是否為空,進行區分,具體不太清楚你想要的結果uj5u.com熱心網友回復:
CREATE TABLE t1 (user_id1 int, username varchar(10),DEAL_DATE DATE )
CREATE TABLE t2 (user_id2 int, usercomments varchar(10))
INSERT INTO t1 values(1,'Lily', '2018-01-01')
INSERT INTO t1 values(2,'Lucy', '2018-01-01')
INSERT INTO t1 values(3,'Tom', '2018-01-01')
INSERT INTO t2 values(2,'t2')
INSERT INTO t2 values(3,'t2')
select t1.* , t2.*
, CASE WHEN t2.user_id2 is null then 'the user is only in t1' ELSE 'the user is in both t1 and t2' end AS userCheck
from t1 left join t2 on t1.user_id1 = t2.user_id2
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/80868.html
標籤:數據倉庫
上一篇:資料庫sql陳述句查詢
