我是sql / hql的新手。
我正在使用下面的hive表来构建逻辑,如下所述:
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
这是一个仅在Card_id具有多个Mid的情况下创建的临时表
需求:
期望的输出:
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交付给我的客户。
您可以使用max()
作为窗口函数:
select card_id, mid,
max(address) over (partition by card_id)
from t;