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

Posted 00单00

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle sql 转换成 hive sql -子查询转关联查询(十七),子查询中有2个表外字段关联写法,round函数与power函数的运用相关的知识,希望对你有一定的参考价值。

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

hive的nvl中的子查询

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,
	aaa a
WHERE
	b.polno = l.polno
	and a.code = b.code
	and a.val = 'D'
	and a.vip = l.Vip

想法:子查询中关联了两张表,直接取出来合并到整个大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,
	aaa a
WHERE
	b.polno = l.polno
	and a.code = b.code
	and a.val = 'D'
	and a.vip = l.Vip

以上是关于oracle sql 转换成 hive sql -子查询转关联查询(十七),子查询中有2个表外字段关联写法,round函数与power函数的运用的主要内容,如果未能解决你的问题,请参考以下文章

GreenPlum SQL 查询转换成 Hive

hive sql转换成MR任务过程

hive sql转换成MR任务过程

hive sql转换成MR任务过程

如何把ORACLE数据库BLOB类型转换成SQL的TEXT类型。

怎么将oracle的sql文件转换成mysql的sql文件