数据去重(group by)
利用group by
进行去重
fruit_table如下:
shop | fruit | price |
---|---|---|
1 | 苹果 | 5 |
1 | 香蕉 | 3 |
1 | 梨子 | 4 |
2 | 芒果 | 10 |
2 | 香蕉 | 5 |
2 | 苹果 | 4 |
3 | 梨子 | 5 |
3 | 芒果 | 8 |
现在对fruit_table中的水果进行去重查询,得到这个表中一共有那些水果:
select fruit from fruit_table group by fruit
得到:
fruit |
---|
苹果 |
香蕉 |
梨子 |
芒果 |
注意:select后面的关键字,不能是不在group by 后面的关键字
也是就是说,select fruit, price from fruit_table group by fruit
这个语句会报错,因为price不是group by后面的。
collect_list,collect_set
对于上面的group by语句,如果我们除了想知道fruit_table这个表里面有哪些水果之外,还想知道对于一个水果,所有出现的价格是多少,而且想把相同的水果的价格放在一起。
这个时候我们就需要将collect_set或者collect_list与group by进行连用了。
concat_ws
lateral view explode
(待补)