Join 非相等配置单元查询的变通方法
我试图在配置单元上重写跟踪查询Join 非相等配置单元查询的变通方法,join,hadoop,mapreduce,left-join,hive,Join,Hadoop,Mapreduce,Left Join,Hive,我试图在配置单元上重写跟踪查询 select TFCT_CHARGE.SUBS_KEY, TFCT_CHARGE.PRODUCT_KEY, TFCT_CHARGE.CHARGE_NVAL, TFCT_CHARGE.B_SUBS_KEY, TFCT_CHARGE.DELETE_DT, HFCT_SUBS_SEGMENT.SEGMENT_KEY, TFCT_CHARGE.EVENT_DT, TFCT_CHARGE.DWH
select
TFCT_CHARGE.SUBS_KEY,
TFCT_CHARGE.PRODUCT_KEY,
TFCT_CHARGE.CHARGE_NVAL,
TFCT_CHARGE.B_SUBS_KEY,
TFCT_CHARGE.DELETE_DT,
HFCT_SUBS_SEGMENT.SEGMENT_KEY,
TFCT_CHARGE.EVENT_DT,
TFCT_CHARGE.DWH_SRC_TABLE_KEY
from
TFCT_CHARGE LEFT OUTER JOIN HFCT_SUBS_SEGMENT
ON (
TFCT_CHARGE.B_SUBS_KEY = HFCT_SUBS_SEGMENT.SUBS_KEY and
TFCT_CHARGE.EVENT_DT >= HFCT_SUBS_SEGMENT.EFF_DT and
TFCT_CHARGE.EVENT_DT < HFCT_SUBS_SEGMENT.EXP_DT and
HFCT_SUBS_SEGMENT.SEGMENT_TYPE_KEY = 1)
选择
TFCT_CHARGE.SUBS_键,
TFCT\费用。产品\密钥,
收费,
TFCT_CHARGE.B_SUBS_键,
TFCT\u CHARGE.DELETE\u DT,
HFCT_接头_段。段_键,
TFCT\u CHARGE.EVENT\u DT,
TFCT\u CHARGE.DWH\u SRC\u表\u键
从…起
TFCT\U充电左外连接HFCT\U接头\U段
在(
TFCT_CHARGE.B_SUBS_KEY=HFCT_SUBS_SEGMENT.SUBS_KEY和
TFCT\u CHARGE.EVENT\u DT>=HFCT\u SUBS\u SEGMENT.EFF\u DT和
TFCT\u CHARGE.EVENT\u DT
但也有不平等的质疑。
谁能告诉我一些解决办法吗?
Tnx 这很容易
选择
TFCT_CHARGE.SUBS_键,
TFCT\费用。产品\密钥,
收费,
TFCT_CHARGE.B_SUBS_键,
TFCT\u CHARGE.DELETE\u DT,
HFCT_接头_段。段_键,
TFCT\u CHARGE.EVENT\u DT,
TFCT\u CHARGE.DWH\u SRC\u表\u键
从…起
TFCT\U充电内部连接HFCT\U接头\U段
在(
TFCT\U CHARGE.B\U SUB\U KEY=HFCT\U SUB\U段.SUB\U KEY
HFCT_接头_段。段_类型_键=1)
哪里
TFCT\u CHARGE.EVENT\u DT>=HFCT\u SUBS\u SEGMENT.EFF\u DT和
TFCT\u CHARGE.EVENT\u DT
要模拟非等左外部联接:
有关代码,请参见我的答案:您的答案不考虑左外连接。您将缺少不在内部联接中的行
select
TFCT_CHARGE.SUBS_KEY,
TFCT_CHARGE.PRODUCT_KEY,
TFCT_CHARGE.CHARGE_NVAL,
TFCT_CHARGE.B_SUBS_KEY,
TFCT_CHARGE.DELETE_DT,
HFCT_SUBS_SEGMENT.SEGMENT_KEY,
TFCT_CHARGE.EVENT_DT,
TFCT_CHARGE.DWH_SRC_TABLE_KEY
from
TFCT_CHARGE INNER JOIN HFCT_SUBS_SEGMENT
ON (
TFCT_CHARGE.B_SUBS_KEY = HFCT_SUBS_SEGMENT.SUBS_KEY
HFCT_SUBS_SEGMENT.SEGMENT_TYPE_KEY = 1)
where
TFCT_CHARGE.EVENT_DT >= HFCT_SUBS_SEGMENT.EFF_DT and
TFCT_CHARGE.EVENT_DT < HFCT_SUBS_SEGMENT.EXP_DT and