栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

Hive语法中with as的使用

Hive语法中with as的使用

Hive语法中with as的使用

一、with as是什么?二、with as怎么用?三、with as测试四、with as总结

一、with as是什么?

如果有一个需求,或者一堆需求,而这一堆需求中频繁的都要使用一个数据集,但是这个数据集在原始数据集中没有,可以通过一些操作在原始数据集中得到,那么该怎么办?

这个时候最基础的想法,写一个程序,把频繁使用到的中间数据得到,然后从中间数据中进行处理分析,这个思维方式其实就是with as语法的使用逻辑。

如果对于一个逻辑的处理,大量的需求都使用到了一个中间数据,我们就可以使用with as将中间数据先计算存储下来,以后的操作如果用到这个中间数据,就避免了重复的计算,这个思维也有点类似于数仓分层的一个小特点,简化不必要的重复计算。

这个中间数据又叫做视图。

二、with as怎么用?

那么with as怎么使用?

语法:

with tmp_tn1 as (
	select ... from .... where .... group ... ... ...
),
tmp_tn2 as (
	select ... from ... where ... group ... ...
),
tmp_tn3 as ()

一个with as 可以包含多个视图,中间用逗号隔开

视图存储了,怎么使用

with tmp_tn1 as (
	select ... from .... where .... group ... ... ...
),
tmp_tn2 as (
	select ... from ... where ... group ... ...
)

select * from tmp_tn1,tmp_tn2;

注意:视图建立和视图使用要写在一个with as中,而且在最后的with as视图中不用使用逗号

三、with as测试

比如有一个score的表,里面有三个字段名字、学科、成绩

现在使用with as,分别建立名字为孙悟空的名字,以及名字为孙悟空的成绩

说明:这里只是用于举例with as的使用,真是生产环境中大概率不会这么写

  with nam as (
    select name,subject
    from score
    where name='孙悟空'
  ),
  sco as (
    select name,score
    from score
    where name='孙悟空'
  )

  select * from nam,sco

四、with as总结
    with as类似于一个视图/临时表,我们可以将频繁使用的sql存储下来视图的使用也要在with as中with as可以看作是一个一次性或者封闭型的函数,只能在with as中使用,所以如果有多sql使用的时候,要写在一个with as中
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/742605.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号