hive中的concat,concat_ws,collect_set用法
2018-01-16 10:12
375 查看
需求:对用户的订单进行分析,将不同订单类型分别多少单展示出来,每个用户一行
原数据:
目标:
1.使用concat()函数将order_type和order_number连接起来
concat(order_type,'(',order_number,')')
2.使用concat_ws()和collect_set()进行合并行
将上面列表中一个user可能会占用多行转换为每个user占一行的目标表格式,实际是“列转行”
select user,concat_ws(',',collect_set(concat(order_type,'(',order_number,')'))) order
from table group by user
order是别名
collect_set的作用:
(1)去重,对group by后面的user进行去重
(2)对group by以后属于同一user的形成一个集合,结合concat_ws对集合中元素使用,进行分隔形成字符串
原数据:
user | order_type | order_number |
user1 | delivered | 10 |
user2 | returned | 1 |
user1 | returned | 3 |
user2 | delivered | 20 |
user | order |
user1 | delivered(10),returned(3) |
user2 | delivered(20),returned(1) |
concat(order_type,'(',order_number,')')
user | order |
user1 | delivered(10) |
user2 | returned(1) |
user1 | returned(3) |
user2 | delivered(20) |
将上面列表中一个user可能会占用多行转换为每个user占一行的目标表格式,实际是“列转行”
select user,concat_ws(',',collect_set(concat(order_type,'(',order_number,')'))) order
from table group by user
order是别名
collect_set的作用:
(1)去重,对group by后面的user进行去重
(2)对group by以后属于同一user的形成一个集合,结合concat_ws对集合中元素使用,进行分隔形成字符串
相关文章推荐
- SQL里concat_ws()、collect_set()的使用
- hive_CONCAT_WS合并的用法
- spark concat_ws,collect_set
- sql中的concat、concat_ws和group_concat
- [Hive]用concat_w实现将多行记录合并成一行
- MySQL的行转列、列转行、连接字符串 concat、concat_ws、group_concat函数用法
- MySQL中的CONCAT、CONCAT_WS、GROUP_CONCAT函数,实现多行和多列的内容放在一个单元格内
- concat、concat_ws、group_concat函数用法
- MYSQL中的concat()函数和concat_ws()函数
- HIVE学习与实践(二):根据partition建表,插表,where in 语法,concat用法
- Hive 的collect_set使用详解
- HIVE: collect_set(输出未包含在groupby的字段);
- Hive 的collect_set使用详解
- hive中一些常用函数介绍weekofyear、LATERAL VIEW explode() 、collect_set
- concat、concat_ws、group_concat函数用法
- MySQL的字符串连接函数CONCAT, CONCAT_WS,GROUP_CONTACT
- CONCAT_WS('-',str1,str2)函数,用'-'将两个字段拼起来
- mysql concat_ws与concat区别
- concat , concat_ws , ||
- MySQL 连接字符串函数 CONCAT() CONCAT_WS() GROUP_CONCAT()