oracle sql 转换成 hive sql -子查询转关联查询(五).子查询中嵌套子查询其他案例

其他sql格式也在更新中,可直接查看我的这个系列,要是没有你需要的格式,可在评论或私信我

子查询中有子查询,子子查询没有和外表a表关联

oracle 原sql

select 
	nvl((select power(1 + lm.rate, 1 / 365) - 1
	    from B lm
	   where lm.riskcode = a.riskcode
	     and lm.ratestartdate =
	         (select max(lr.ratestartdate)
	            from B lr
	           where lm.riskcode = lr.riskcode)
	     and lm.rate > 0),
	  0) as MinInterestRate,
from 
	A lj

hive 改sql

select 
	 nvl(lding.targetcode,0) as bankcode
from 
	A lj
	LEFT JOIN
	(select max(ratestartdate) as maxtar , riskcode
	 from B
	 group by riskcode
    ) lam
	on lam.riskcode = a.riskcode
	
	LEFT JOIN
	(select (power(1 + rate, 1 / 365) - 1) as pow,riskcode,ratestartdate
	from B
	where rate>0
	group by riskcode,ratestartdate,rate
    ) lma
	on lma.riskcode = a.riskcode
	and lma.ratestartdate =lam.maxtar

过程:lm.riskcode = lr.riskcode这个字段都是B表的字段,他自己关联了自己,所以拆开需要找到a表和b表的关联条件,用来去重,如果你需要子子查询和a表有关联的sql示例,可以看我上上篇
链接: 上上篇的子查询嵌套子查询的sql案例.

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值