阿里云大数据ACP认证知识点梳理6——基础SQL语句(内建函数、窗口函数规则、隐式转换规则)

abs(null)=null
abs(-1)=1
abs(-1.2)=1.2
abs("-2")=2.0
abs(122320837456298376592387456923748)=1.2232083745629837e32

注:当number为Double、Bigint或Decimal类型时。输入为Bigint,返回Bigint。输入为Double,返回Double类型。输入为Decimal,返回Decimal类型。若输入为String类型,会隐式转换为Double类型后参与运算,其它类型抛异常。若输入为null,则返回null。

ceil(1.1)=2
ceil(-1.1)=-1

注:向上取整,函数返回不小于输入值value的最小整数。Double类型或Decimal类型,若输入为String类型或Bigint类型,会隐式转换到Double类型后参与运算,其他类型抛异常。返回Bigint类型。任意一个参数输入为null,则返回null。

floor(1.2)=1
floor(1.9)=1
floor(0.1)=0
floor(-1.2)=-2
floor(-0.1)=-1
floor(0.0)=0
floor(-0.0)=0

注:向下取整,函数返回不大于number的最大整数值。Double类型或Decimal类型,若输入为String类型或Bigint类型,会隐式转换为Double类型后参与运算,其他类型抛异常。返回Bigint类型。若number为null,则返回null。

select rand() from dual;
select rand(1) from dual;

注:该函数以seed为种子,返回Double类型的随机数,返回值区间是的0~1。可选参数,Bigint类型,随机数种子,决定随机数序列的起始值。返回Double类型

round(125.315)=125.0
round(125.315, 0)=125.0
round(125.315, 1)=125.3
round(125.315, 2)=125.32
round(125.315, 3)=125.315
round(-125.315, 2)=-125.32
round(123.345, -2)=100.0
round(null)=null
round(123.345, 4)=123.345
round(123.345, -4)=0.0

注:Double类型或Decimal类型。若输入为String类型或Bigint类型,会隐式转换为Double类型后参与运算,其他类型抛异常。四舍五入计算到小数点后的位置,其他类型参数会引发异常。如果省略表示四舍五入到个位数,默认值为0。返回Double类型或Decimal类型。若number或Decimal_places为null,则返回null。负数会从小数点向左开始计数,并且不保留小数部分。如果Decimal_places超过了整数部分长度,返回0。

窗口函数

MaxCompute SQL中可以使用窗口函数进行灵活的分析处理工作,窗口函数只能出现在select子句中,窗口函数中不要嵌套使用窗口函数和聚合函数,窗口函数不可以和同级别的聚合函数一起使用。

目前在一个MaxCompute SQL语句中,最多可以使用5个窗口函数。

window_func() over (partition by [col1,col2…]
[order by [col1[asc|desc], col2[asc|desc]…]] windowing_clause)

注:语法声明格式。

select deptno, ename, sal, dense_rank() over (partition by deptno order by sal desc) as nums;
注:将所有职工根据部门分组,每个组内根据SAL做降序排序,获得职工自己组内的序号。

count语句

select user_id,count(user_id) over (partition by user_id) as count
from test_src;

注:该函数用于计算计数值。

上一篇:Linux 性能检测工具Vmstat命令


下一篇:MapGuide应用最佳实践----资源库Repository的维护