hive - 当一列不同时如何选择不重复的行?
问题描述
这是我的表,有 4 列:
a b e d
a f c d
我想获取所有第 1 列和第 4 列,以便在示例中将前两行合并为一行,因为它们是相同的:
a d
a d
当我使用命令时:
select column1, column4 from my_table;
这会自动删除重复项吗?如果没有,如何获得只有 1 和 4 列的不同行?
解决方案
有点令人困惑的问题。
您要删除重复数据还是只删除select
非重复数据?
如果你想删除重复数据,那么它将是这样的 -
insert overwrite my_table
select * from my_table
join (
Select col1||col2||col3||col4 key, row_number() over (partition by col1,col4 order by col1 ) as rn
from my_table) rs on rs.key = col1||col2||col3||col4 and rs.rn=1
如果您想要select
唯一的 col1 和 col4 并且不想更改基础数据,您可以简单地触发
select distinct column1, column4 from my_table;
推荐阅读
- javascript - 我在调度一个动作之前使用 setState 设置一个属性,但是在调度时的 redux 动作中没有设置该属性
- excel - Excel比较表以查找二维数组中的存在
- reactjs - 我们可以将 kafka 与 react native 集成吗
- java - 具有内部比较器类的 PriorityQueue
- java - 类需要一个找不到的“java.lang.String”类型的 bean
- html - css 在固定高度旁边有一个全高 div?
- javascript - 带有重定向和回显到页面的 Ajax 值
- git - Is there a way to set a branch always rebased from another branch?
- javascript - Angular Build 逆向工程:如何将缩小的 javascript 文件还原为其原始打字稿形式
- r - FUN(dd[x, ], ...) 中的错误:使用 by() 找不到函数“FUN”