①collect_set() collect_set (col)函数只接受 基本数据类型 ,它的主要作用是将某字段的值进行去重汇总,产生array类型字段。
②MySQL中concat函数(连接字符串)
MySQL中concat函数
使用方法:
concat(str1,str2,…)
返回结果为连接参数产生的字符串。如有任何一个参数为NULL ,则返回值为 NULL。
mysql> select concat('11','22','33');
+------------------------+
| concat('11','22','33') |
+------------------------+
| 112233 |
+------------------------+
1 row in set (0.00 sec)
MySQL的concat函数在连接字符串的时候,只要其中一个是NULL,那么将返回NULL
mysql> select concat('11','22',null);
+------------------------+
| concat('11','22',null) |
+------------------------+
| NULL |
+------------------------+
1 row in set (0.00 sec)
③关键字LIKE可以进行模糊匹配
④
SQL INNER JOIN 关键字
在表中存在至少一个匹配时,INNER JOIN 关键字返回行。
⑤
insert overwrite ... :可以保证计算任务的幂等性(即不管执行几次,都能保证和执行一次的结果是一样的,保证任务可以重复执行)
⑥字段拼接,满n件打折等优惠实现
select
id,
coupon_name,
coupon_type,
type_dic.dic_name,
condition_amount,
condition_num,
activity_id,
benefit_amount,
benefit_discount,
case coupon_type
when '3201' then concat('满',condition_amount,'元减',benefit_amount,'元')
when '3202' then concat('满',condition_num,'件打',10*(1-benefit_discount),'折')
when '3203' then concat('减',benefit_amount,'元')
end benefit_rule,
create_time,
range_type,
range_dic.dic_name,
limit_num,
taken_count,
start_time,
end_time,
operate_time,
expire_time
from
⑦orc:ORC文件是以二进制方式存储的,所以是不可以直接读取
tsv:以逗号分隔的文件,本质为文本文件
⑧表是否是分区表,对于之后load文件上去的区别
DROP TABLE IF EXISTS tmp_dim_date_info; CREATE EXTERNAL TABLE tmp_dim_date_info ( `date_id` STRIN