😸在上一节中,我们学习了MaxComputer SQL的DML语言,并用DataWork给大家演示了一遍,今天我们进入内置函数的学习,这一部分中,我们接触到的内置函数比较多,大家只要记住一些常用的,其他的函数知道有这么一个功能存在就行,对往期内容感兴趣的小伙伴可以参考下面的文章👇:
👀 今天所有的内置函数依旧会在DataWorks上给大家演示,让大家了解内置函数的同时,也了解阿里云的大数据平台。好了,让我们开启今日份的学习吧!
1. 内置函数的内容
内置函数主要包括以下几个部分的函数:
- 值函数:数学运算、字符串处理、日期处理函数
- 窗口函数:常见统计量类、排名类、偏移定位类、分组抽样类
- 聚合函数:常见统计量类、字符串类
- 其他函数:类型转换函数、分支判别函数、其他
2. 测试数据表的建立
依旧是建立一个临时查询 

 客户端上传数据 查看数据


 下面的演示阶段
3. 各类型内置函数的介绍
3.1 值函数
3.1.1 数学运算函数
 实验
1.已知三角形两边长度为10,20,夹角为60度,求三角形面积? 
2.对数字进行加工处理,请分别显示数字 3.1415926 的向上取整值、向下取整值、四舍五入保留3位小数的值、截掉小数位的值以及用二进制来表示该值。
3.随机函数 
3.1.2 字符串处理函数
 实验
1.查看字段字符、字节长度 
2.查找目前销售记录中,哪些省、市名字比较接近? 
3.目前销售记录中,省份的第一个字在城市名中是否出现?有没有出现多次的? 
4.要把数据从一个编码为 utf8 的库导入到一个字符集为 gb2132 的库中,其中有些繁体字,如“阿裏雲”等字样,请问会出现乱码的情况吗? 
5.拼接字符,将省和市拼接起来,并用‘|’隔开 
3.1.3 日期类型函数
 实验
1.日期获取:根据日期,截取部分信息,截取年、月、日、时、分、秒 
2.日期截取,截取天 
3.获得具体日期  4.字符串转成日期, 日期转换成字符串 
5.Unix时间和ODPS时间互转 
6.判断字符串是否满足预定义的日期格式 
7.日期运算:统计5月1日从产品5第一次成交后一小时三十分钟内(含),产品5销量(含第一次成交)占同期总销量的比例: 
8.日期相减 
3.2 窗口函数
 实验
1.根据5月份销售数据,统计出日销量波动最小的产品(即标准差最小)。 
2.根据5月份销售数据,统计出同一产品成交最短时间间隔(以产品1为例,列出出两次成交时间差最小的记录)。 
3.3 聚合函数和其他类型的函数
 实验
1.给出销售信息表t_dml中的不同产品的销售金额的基本统计信息。 
2.将产品标称单价在50-100元的,生成一个清单,不同产品名称之间用|分隔开。 
3.COALESCE 处理NULL值:将 t_sign 中的名字(name)和生日(birth_day)拼成一个串 
4.decode 分支函数:将销售记录t_dml中浙江、上海和北京的销量单独统计出来:(实现if else的分支功能) 
5.sample 采样函数:通过采样分析的手段,从销售记录表t_dml中得到1/100的数据,分析采样样本,试着推断总体的销售金额的平均值、标准差、极值、极差等,然后从总体中计算出这些统计量进行验证。调整采样比例,重复上述推断过程,找到一个准确程度和样本体量的平衡点,进一步思考:这个平衡点有多大参考价值?(100份取一份,) 
4. 总结
在这些函数中,我的实验部分使用的都是比较常用的函数,足以应付大多数的开发任务,如果上述函数满足不了业务需求,可以尝试自己编写函数。我们这里主要要记住以下部分:
- 平均值、最大最小值、常用的计算
- 日期格式转换、相加减
- 分区排序
- 字符串处理空值、截取字符、处理正则等
5. 参考资料
《阿里云全球培训中心》 《阿里云DataWorks使用手册》
|