HIVE获取最新分区的数据的方法

来源:互联网 发布:国外域名需要备案吗 编辑:程序博客网 时间:2024/06/05 19:54

场景

以dt(日期)分区的hive表,获取最新一天的分区数据
如果是普通的SQL的话,下面这样写就可以了,但是hive中这种写法会报错

SELECT*FROM xxxWHERE dt=(SELECTmax(dt)FROMxxx)

解决方法

在hive里,要用alias才能获取分区中的数据,而且查询条件(WHRER)中还必须带有分区字段(dt),否则会报错

SELECTb.item as `item`FROM(SELECT MAX(dt) as latest_dt FROM xxxx WHERE dt IS NOT NULL) aJOINxxxx bON a.latest_dt=b.dtWHERE b.dt IS NOT NULL;