hiveql查找地址为空并填充地址

e0bqpujr  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(266)

我是sql/hql新手。
我使用下面的配置单元表来构建逻辑,如下所述:

Card_ID  Mid      Address                
------   -----   ---------------           
1000     201     MG Road,bangalore      
1000     301     MG Road,bangalore       
1000     401     null 
1000     501     null

2000     205     Plot # 5, Indira Nagar, Delhi

2000     305     Plot # 5, Indira Nagar, Delhi             
2000     405     null

3000     109     psk road

3000     809     psk road

这是一个暂存表,仅使用具有多个mid的卡id创建
要求:
标识卡的mid address为null和not null(我需要创建一个包含这组值的表,以便让我的客户查看)。因此,请使用sql来创建此请求)
用同一卡号下的其他中间地址填充地址列空值
期望输出:

Card_ID  Mid      Address                
------   -----   ---------------           
1000     201     MG Road,bangalore      
1000     301     MG Road,bangalore       
1000     401     MG Road,bangalore 
1000     501     MG Road,bangalore

2000     205     Plot # 5, Indira Nagar, Delhi

2000     305     Plot # 5, Indira Nagar, Delhi             
2000     405     Plot # 5, Indira Nagar, Delhi

3000     109     psk road

3000     809     psk road

请你们帮我一步一步地把hql/sql框起来让我理解一下,这样我就可以在明天之前把上面的o/p交付给我的客户了。

mrwjdhj3

mrwjdhj31#

你可以用 max() 作为窗口函数:

select card_id, mid,
       max(address) over (partition by card_id)
from t;

相关问题