赞
踩
目录
数据:
id | order-type | order-number |
1 | aa | 5 |
2 | bb | 2 |
1 | bb | 1 |
2 | aa | 3 |
1 | aa | 2 |
需求:对用户的订单进行分析,将不同订单类型分别多少单展示出来,每个用户一行
实现:
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是别名
作用:
NVL(表达式1,表达式2)
nvl是一个空值转换函数。
如果表达式1为空值,NVL返回值为表达式2的值,否则返回表达式1的值。 该函数的目的是把一个空值(null)转换成一个实际的值。其表达式的值可以是数字型、字符型和日期型。但是表达式1和表达式2的数据类型必须为同一个类型。
应用场景:
select data_format('2020-11-6','yyyy-mm');
前一天: select date_add('2020-11-6',-1);
后一天: select date_add('2020-11-6',1);
(1)取当前天的下一个周一
select next_day('2020-11-06','MO');
(2)取当前周的周一
select date_add(next_day('2020-11-06','MO'),-7);
select last_day('2020-10-30');
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。