阿里云MaxComputer SQL学习之内置函数

Posted 柳小葱

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了阿里云MaxComputer SQL学习之内置函数相关的知识,希望对你有一定的参考价值。

😸在上一节中,我们学习了MaxComputer SQL的DML语言,并用DataWork给大家演示了一遍,今天我们进入内置函数的学习,这一部分中,我们接触到的内置函数比较多,大家只要记住一些常用的,其他的函数知道有这么一个功能存在就行,对往期内容感兴趣的小伙伴可以参考下面的文章👇:

👀 今天所有的内置函数依旧会在DataWorks上给大家演示,让大家了解内置函数的同时,也了解阿里云的大数据平台。好了,让我们开启今日份的学习吧!

目录

1. 内置函数的内容

内置函数主要包括以下几个部分的函数:

  1. 值函数:数学运算、字符串处理、日期处理函数
  2. 窗口函数:常见统计量类、排名类、偏移定位类、分组抽样类
  3. 聚合函数:常见统计量类、字符串类
  4. 其他函数:类型转换函数、分支判别函数、其他

2. 测试数据表的建立

依旧是建立一个临时查询

  • 创建dual表,并插入数据

  • 创建实验测试表t_dml


客户端上传数据
查看数据

  • 创建实验测试t_product表(过程同上)

  • 创建实验测试t_sign表


下面的演示阶段

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使用手册》

以上是关于阿里云MaxComputer SQL学习之内置函数的主要内容,如果未能解决你的问题,请参考以下文章

阿里云DataWorks介绍

SQL学习之开窗函数-内置函数盘点

阿里云DataWorks学习之平台实践

阿里云Quick BI学习之报表制作

Docker 学习之镜像导入导出及推送阿里云服务器

Linux学习之阿里云服务器java开发环境的搭建