oracle sql 转换成 hive sql -子查询转关联查询(十七),子查询中有2个表外字段关联写法,round函数与power函数的运用

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

round和power函数理论

roundselect round(123.4567,2) = 123.46进行四舍五入处理,保留2位小数
powerselect power(1,365)返回以 1 的 365 次幂

子查询中有2个表外字段关联写法sql案例

oracle 原sql

SELECT
	(SELECT
	round((
	SELECT
		power(
		select rate 
		from aaa
		where code = b.code
		and val = 'D'
		and vip = l.Vip)+ 1, 365)-1)* 100,
	2)
FROM
	dual) as aaa
FROM
	bbb b,
	lll l
WHERE
	b.polno = l.polno

hive 改sql

SELECT
	round((power((a.rate + 1), 365)-1)* 100,
	2) as Interestrate
FROM
	bbb b,
	lll l
	left join aaa a
	on  a.code = b.code
	and a.val = 'D'
	and a.vip = l.Vip
WHERE
	b.polno = l.polno

想法:子查询中关联了两张表,直接取出来合并到整个大sql里面

格外笔记

一开始我以为power和round这个是像sum这种聚合函数,需要分组才能通过演算

SELECT
	b.polno as polno,
	a.code as code,
	round((power((a.rate + 1), 365)-1)* 100,
	2) as Interestrate
FROM
	bbb b,
	lll l
	left join aaa a
	on  a.code = b.code
	and a.val = 'D'
	and a.vip = l.Vip
WHERE
	b.polno = l.polno
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值