我正在运行Hive 071我有一个表,多行,具有相同的列值,例如。
| x | y |
| 1 | 2 |
| 1 | 3 |
| 1 | 4 |
| 2 | 2 |
| 3 | 2 |
| 3 | 1 |
我希望x列是唯一的,并删除具有相同x值的行,例如
| x | y |
| 1 | 2 |
| 2 | 2 |
| 3 | 2 |
或
| x | y |
| 1 | 4 |
| 2 | 2 |
| 3 | 1 |
两者都很好,只有在hive的整个rs上才有效,我找不到办法做到这一点
请帮助请Tx
答案 0 :(得分:5)
一些选项:
1)这将为每个x值提供y的最大值
select x, max(y) from table1 group by x
同样可以使用avg()或min()
2)或者,您可以在列表中收集y的所有值:
select x, collect_set(y) from table1 group by x
这会给你:
x|y
1|2,3,4
2|2
3|1,2