欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

Hive(二):with as用法

发布时间:2023/12/20 47 豆豆
生活随笔 收集整理的这篇文章主要介绍了 Hive(二):with as用法 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

在Hive(一):row_number over(partition by,order by)用法中用到了with table as的写法

with t as (select *, row_number()over(partition by id order by salary desc) ranking from tmp_learning_mary) select * from t where ranking = 1;

with as 也叫做子查询部分,hive 可以通过with查询来提高查询性能,因为先通过with语法将数据查询到内存,然后后面其它查询可以直接使用。

with as就类似于一个视图或临时表,可以用来存储一部分的sql语句作为别名,不同的是with as 属于一次性的,而且必须要和其他sql一起使用才可以!

其最大的好处就是适当的提高代码可读性,而且如果with子句在后面要多次使用到,这可以大大的简化SQL;更重要的是:一次分析,多次使用,这也是为什么会提供性能的地方,达到了“少读”的目标。

使用注意事项:

1.with子句必须在引用的select语句之前定义,而且后面必须要跟select查询,否则报错。

2.with as后面不能加分号,with关键字在同级中只能使用一次,允许跟多个子句,用逗号隔开,最后一个子句与后面的查询语句之间只能用右括号分隔,不能用逗号。

create table a as with t1 as (select * from firstTable), t2 as (select * from secondTable), t3 as (select * from thirdTable) select * from t1,t2,t3;

3.前面的with子句定义的查询在后面的with子句中可以使用。但是一个with子句内部不能嵌套with子句。

with t1 as (select * from firstTable), t2 as (select t1.id from t1) #第二个子句t2中用了第一个子句的查询t1 select * from t2

参考链接:

Hive中使用 with as 优化SQL

总结

以上是生活随笔为你收集整理的Hive(二):with as用法的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。