在hive中考虑下表:在这里,我需要找出家庭,车辆和客户的独特组合。但条件是,如果同一个家庭和车辆有两个不同的客户,角色是司机和车主,我必须考虑车主。但是,如果一个家庭和一辆车只有一个客户,如果这个客户是司机或车主,我也必须考虑这个记录。我需要Hive查询。结果如下表所示:有人能帮帮我吗?
nuypyhwy1#
基本上你要找的是一个top-n窗口函数查询,在你的例子中n是1。您可以使用rank函数编写一个配置单元查询,并附加一个“limit1”子句来实现您想要的结果。请参阅配置单元中的秩函数以开始。您可以在这里找到一个简单的示例—配置单元—组中的前n个记录
w7t8yxp52#
这很有用,试试看this:-
select Household,Vehicle,Customer,Cust_role from (select *,row_number() over (partition by Household,Vehicle order by Cust_role desc) rn from test_table) tableouter where rn=1;
output:-
I 1 A OWNER II 2 C DRIVER III 3 D OWNER IV 4 E OWNER
2条答案
按热度按时间nuypyhwy1#
基本上你要找的是一个top-n窗口函数查询,在你的例子中n是1。您可以使用rank函数编写一个配置单元查询,并附加一个“limit1”子句来实现您想要的结果。请参阅配置单元中的秩函数以开始。
您可以在这里找到一个简单的示例—配置单元—组中的前n个记录
w7t8yxp52#
这很有用,试试看this:-
output:-