我在Hive中有两个表,如下面提到的Hive
表格1:
id名称值1 abc堆栈3 abc溢出4 abc foo6 abc吧表2:
id名称值5 xyz溢出……
计算分析 count(*) over(partition by value) 。 使用您的数据示例进行测试
count(*) over(partition by value)
with table1 as ( select stack (4, 1,'abc','stack', 3,'abc','overflow', 4,'abc','foo', 6,'abc','bar' ) as (id, name, value) ), table2 as ( select stack (4, 5, 'xyz','overflow', 9, 'xyz','stackoverflow', 3, 'xyz','foo', 23, 'xyz','bar' ) as (id, name, value) ) select id, name, value from( select id, name, value, count(*) over(partition by value) value_cnt from (SELECT id,name,value FROM table1 UNION ALL SELECT id,name,value FROM table2) s )s where value_cnt=1;
结果:
OK id name value 1 abc stack 9 xyz stackoverflow Time taken: 55.423 seconds, Fetched: 2 row(s)
你可以尝试下面 -
seELECT id,name,value FROM table1 a left join table2 b on a.value=b.value where b.value is null UNION ALL SELECT seELECT id,name,value FROM table2 a left join table1 b on a.value=b.value where b.value is null